【问题标题】:Msbuild with Replace Existing Files Option带有替换现有文件选项的 Msbuild
【发布时间】:2012-10-16 10:01:18
【问题描述】:

我正在使用 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>

【问题讨论】:

    标签: msbuild cruisecontrol.net


    【解决方案1】:

    这个答案可能会有所帮助

    How do I keep MSDeploy from deleting extra folders in my project?

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

    SkipExtraFilesOnServer=True

    【讨论】:

    • 仍然不适合我,它仍然会删除现有文件
    • 确认一下,您的构建参数现在相当于:&lt;buildArgs&gt;/noconsolelogger /v:quiet /p:Configuration=Staging /p:DeployOnBuild=true /p:DeployTarget=PipelinePreDeployCopyAllFilesToOneFolder /p:_PackageTempDir="c:\dMisr\Web - Deployed" /p:AutoParameterizationWebConfigConnectionStrings=false /p:SkipExtraFilesOnServer=true&lt;/buildArgs&gt; ?
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-15
      • 2021-05-18
      相关资源
      最近更新 更多