因此,我有一个由 Web 项目和 Azure 资源组项目组成的解决方案,非常类似于此处描述的内容:https://blogs.technet.microsoft.com/georgewallace/2015/05/10/deploying-a-website-with-content-through-visual-studio-with-resource-groups/
我遇到的问题是 Web 项目需要在其 bin 目录中包含一些额外的文件才能正常运行。现在,通过 Web 项目本身的正常打包过程,我通过添加自定义目标并 Hook 到 CopyAllFilesToSingleFolderforPackageDependsOn 来完成此操作,例如:
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
</PropertyGroup>
<Target Name="CustomCollectFiles">
<ItemGroup>
<_CustomFiles Include="bin\SlimKIA.WebApi.xml" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>bin\SlimKIA.WebApi.xml</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
当我右键单击网络项目并对文件系统说“发布”时,我的文件就会被包含在内。一切都很好。
问题是当我从部署项目进行部署时不会发生这种情况。我有一个 MsDeploy 资源,它可以做自己的事情。我需要以某种方式在这个项目中执行我的 CustomCollectFiles。
有人对如何实现这一目标有任何想法吗?如果没有这个,我将无法自动将我的解决方案部署到 Azure。
谢谢!
最佳答案
一时兴起,我最终这样做了:
<PropertyGroup>
<CopyAllFilesToSingleFolderForMsdeployDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForMsdeployDependsOn);
</CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>
关键是CopyAllFilesToSingleFolderForMsdeployDependsOn,而不是CopyAllFilesToSingleFolderForPackageDependsOn。只需更改此即可达到目的,我猜这触发了 msdeploy 以包含自定义目标。
关于azure - 如何将额外文件添加到由 Visual Studio 中的 Azure 资源组项目调用的 msbuild 生成的包中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40293668/