3

我正在使用 MsBuild 构建和发布我的项目(连同 CruiseControl.Net)。我已经设置了所有内容并且效果很好,但问题是它覆盖了已部署文件夹中的所有现有文件(并且该文件夹包含用户数据,我可以在构建/发布后执行 xcopy,但用户数据是一些演出和这在每个自动构建上都会有太多的磁盘活动)。

所以我想做的是使用“仅替换现有文件”选项,而不是从文件夹中删除所有内容。我在发布时在 Visual Studio 2010 中获得了此选项,您可以“替换退出文件”或“首先删除所有文件”,如何使用 msbuild 命令参数执行此操作。

 <msbuild>
    <executable>C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
    <workingDirectory>C:\CCnet\dmisr-web_workingdir\MAKANI</workingDirectory>
    <projectFile>MAKANI.sln</projectFile >
    <buildArgs>/noconsolelogger /v:quiet /p:Configuration=Staging /p:DeployOnBuild=true /p:DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="c:\dMisr\Web - Deployed" /p:AutoParameterizationWebConfigConnectionStrings=false</buildArgs>
    <targets>ReBuild</targets >
    <timeout>600</timeout >
 </msbuild>
4

2 回答 2

0

/p:SkipExtraFilesOnServer=true使用这些构建参数时仍在为我删除其他文件 /p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;_PackageTempDir=\\Network\Share\code /p:AutoParameterizationWebConfigConnectionStrings=false /p:SkipExtraFilesOnServer=true

我似乎没有能力发表评论。因此,在答案部分提供我的评论。

于 2013-07-02T14:37:44.973 回答
0

这个答案可能会有所帮助

如何防止 MSDeploy 在我的项目中删除额外的文件夹?

看起来您可能只需要为 msbuild 提供一个额外的属性。

SkipExtraFilesOnServer=True

于 2012-10-16T19:20:24.090 回答