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

How do you include build outputs as additional files using web deploy (MSDEPLOY)?

提问人:John Saunders 提问时间:4/23/2014 更新时间:2/3/2015 访问量:974

问:

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

我已经成功地使用.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>

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

有没有办法在构建过程中生成额外的文件和文件夹时将额外的文件和文件夹添加到部署包中?

MSDiploy Web部署

评论

0赞 Richard Szalay 4/27/2014
如何触发部署?如果来自 CLI,您使用的是什么标志?
0赞 John Saunders 4/27/2014
这是TFS2010构建的一部分。

答:

2赞 Stephen Reindl 2/3/2015 #1

之前也有类似的问题(发布后在 MVC 4 网站中添加插件 DLL)。

只有当文件以前是项目的一部分时,才能部署文件。

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