如何使用Web部署(MSDEPLOY)将构建输出作为附加文件包含在内?

时间:2014-04-23 05:16:02

标签: msdeploy webdeploy

我有一个Web项目,它有一个构建后事件,可以生成一些缩小的文件。暂时假设这需要保持 post - 构建事件,并且不能更改为预构建事件。

我已成功使用.wpp.targets文件打包其他文件:

<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
    <PropertyGroup>
        <SourceRoot>$(BuildDirectory)\Sources\Web</SourceRoot>
    </PropertyGroup>
    <ItemGroup>
        <FilesForPackagingFromProject Include="$(SourceRoot)\ExtraScripts\Normal.js">
            <DestinationRelativePath>Scripts\%(RecursiveDir)%(FileName)%(Extension)</DestinationRelativePath>
            <FromTarget>Web.wpp.targets</FromTarget>
        </FilesForPackagingFromProject>
    </ItemGroup>
</Project>

不幸的是,当我对构建后步骤生成的文件执行相同操作时,这会失败。这是因为CopyAllFilesToSingleFolderForMsdeploy目标在构建之前执行。甚至在PrepareForBuild目标之前。

在构建期间生成时,有没有办法在deploy包中添加额外的文件和文件夹?

1 个答案:

答案 0 :(得分:2)

之前有一个类似的问题(Add Plugin DLL in MVC 4 Website after publish)。

只有在以前将文件作为项目的一部分时才能部署文件。

我们通常做的是将这些文件作为虚拟文件包含在我们的项目中,并在构建过程中覆盖它们。因为这些文件是项目的一部分,所以这种方法将发布这些文件。