如何将额外文件添加到由Visual Studio中的Azure资源组项目调用的msbuild生成的包

时间:2016-10-27 20:28:41

标签: azure msbuild msdeploy azure-resource-manager

所以我有一个由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。

谢谢!

1 个答案:

答案 0 :(得分:5)

我一时兴起,最后这样做了:

  <PropertyGroup>
    <CopyAllFilesToSingleFolderForMsdeployDependsOn>
      CustomCollectFiles;
      $(CopyAllFilesToSingleFolderForMsdeployDependsOn);
    </CopyAllFilesToSingleFolderForMsdeployDependsOn>
  </PropertyGroup>

关键是 CopyAllFilesToSingleFolderForMsdeployDependsOn 而不是 CopyAllFilesToSingleFolderForPackageDependsOn 。只是改变了这个诀窍,我猜这触发了msdeploy包含自定义目标。