【问题标题】:How do I keep MSDeploy from deleting extra folders in my project?如何防止 MSDeploy 在我的项目中删除额外的文件夹?
【发布时间】:2011-03-20 06:34:14
【问题描述】:

我在 Team city 中使用 MSBuild 运行程序来构建我的项目并将其部署到暂存环境。除了它不断删除我位于项目根目录中的存储库文件夹之外,一切都运行良好。

在 Visual Studio 2010 中,发布配置文件对话框中有一个复选框,显示“在目标位置保留额外文件(不要删除)”

有没有办法用 MSBuild 完成同样的事情?

<Target Name="Deploy" DependsOnTargets="Build;Test">
        <MSBuild Projects="MyProject.sln" Properties="Configuration=$(Configuration); username=username; password=password; DeployOnBuild=True; DeployTarget=MSDeployPublish; MSDeployPublishMethod=WMSVC; MSDeployServiceUrl=https://DEVWEB01:8172/MsDeploy.axd; DeployIISAppPath=MyProject.$(Configuration); AllowUntrustedCertificate=True;"/>
</Target>

【问题讨论】:

    标签: visual-studio-2010 msbuild publishing msdeploy


    【解决方案1】:

    找到答案了!

    您需要做的就是将以下属性添加到 Properties 属性:

    SkipExtraFilesOnServer=True;

    【讨论】:

    • 哎呀,我花了一天多的时间试图弄清楚如何使用 -enableRule:DoNotDeleteRule(我可以传递给 MSDEPLOY.exe 的参数)来完成这项工作,但 TFS 没有它。我只是将 /p:SkipExtraFilesOnServer=True 添加到 TFS 构建定义中的 MSBuildArguments 中,它就起作用了!非常感谢:-)
    • 不知道这个config参数是否也可以通过环境变量来设置?在 teamcity 中,我目前将环境变量用于配置和部署路径之类的东西。这些似乎被写入 SetParameters.xml 但我不知道为什么或何时..
    • 有没有办法为每个文件夹而不是全局添加这个?
    • @MikeCole 据我所知,除非您按文件夹分解 MSDeploy 同步文件夹。
    • 我在使用 Bamboo 并为此苦苦挣扎,有很多答案基本上都是一样的,这也让 MSBuild 和 MSDeploy 感到困惑。所以这里的重要部分是使用 /p:SkipExtraFilesOnServer=True; MSBuild.exe 部分的参数,然后在调用 MSDeploy.exe 时使用 -EnableRule:DoNotDeleteRule,这两个部分一起将防止文件在目标服务器上被删除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    • 2018-07-24
    • 2016-01-01
    • 2021-12-20
    • 1970-01-01
    • 2014-06-10
    • 2021-12-09
    相关资源
    最近更新 更多