Msbuild 使用替换现有文件选项

3
我正在使用MsBuild来构建和发布我的项目(以及CruiseControl.Net)。 我已经设置好了一切,它的运作非常好,但问题是它正在覆盖我在部署文件夹中所有现有的文件(而且该文件夹包含用户数据,我可以在构建/发布后执行xcopy,但用户数据有几个G并且会在每次自动化构建时产生太多磁盘活动)。
因此,我想使用“仅替换现有文件”选项,而不是从文件夹中删除所有内容。当发布时,在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>
2个回答

0

/p:SkipExtraFilesOnServer=true 在使用这些构建参数时仍然会删除其他文件。

/p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;_PackageTempDir=\\Network\Share\code /p:AutoParameterizationWebConfigConnectionStrings=false /p:SkipExtraFilesOnServer=true

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


0

仍然无法运行,它仍会删除现有的文件。 - Yehia A.Salam
只是确认一下,您的构建参数现在等同于:<buildArgs>/noconsolelogger /v:quiet /p:Configuration=Staging /p:DeployOnBuild=true /p:DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="c:\dMisr\Web - Deployed" /p:AutoParameterizationWebConfigConnectionStrings=false /p:SkipExtraFilesOnServer=true</buildArgs> - Simon Laing

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接