我正在使用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>
答案 0 :(得分:0)
这个答案可能会有所帮助
How do I keep MSDeploy from deleting extra folders in my project?
看起来您可能只需要为msbuild提供额外的属性。
SkipExtraFilesOnServer =真
答案 1 :(得分:0)
/p:SkipExtraFilesOnServer=true
仍在为我删除其他文件
/p:DeployOnBuild=true;DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder;_PackageTempDir=\\Network\Share\code /p:AutoParameterizationWebConfigConnectionStrings=false /p:SkipExtraFilesOnServer=true
我似乎没有能力发表评论。因此,在答案部分提供我的评论。