【发布时间】:2016-10-27 20:28:40
【问题描述】:
所以我有一个由 Web 项目和 Azure 资源组项目组成的解决方案,就像这里描述的那样:https://blogs.technet.microsoft.com/georgewallace/2015/05/10/deploying-a-website-with-content-through-visual-studio-with-resource-groups/
我遇到的问题是 Web 项目需要在其 bin 目录中包含一些 EXTRA 文件才能运行。现在通过 Web 项目本身的正常打包过程,我通过添加自定义目标并挂钩到 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>
当我右键单击 Web 项目并说“发布”到某个文件系统时,我的文件就会被包含在内。一切都很好。
问题是当我从部署项目部署时不会发生这种情况。我有一个可以自己做事的 MsDeploy 资源。我需要在这个项目中以某种方式执行我的 CustomCollectFiles。
有人对如何完成此任务有任何想法吗?如果没有这个,我将无法自动将我的解决方案部署到 Azure。
谢谢!
【问题讨论】:
-
你是单独构建web项目吗?或者您是否在 deployproj 中创建了对 Web 项目的引用?本质上,您要确保在构建时调用目标...我猜在构建 deployproj 时没有调用目标。
-
我从部署项目中创建了对 Web 项目的引用。你是对的,目标没有被调用,所以我通过使用 PropertyGroup 在下面发布了我发现的解决方案,msdeploy 会注意。
标签: azure msbuild msdeploy azure-resource-manager