部署时防止覆盖文件?

时间:2013-12-17 23:39:48

标签: asp.net visual-studio-2010 visual-studio iis webdeploy

注意:这适用于Visual Studio网站项目而非Web应用程序

我正在使用Web部署将更改从我的开发计算机推送到我的登台服务器。我想推送除了一个特定文件以外的任何与登台服务器不同的文件(让我们称之为myFile.whatever)

到目前为止,我已尝试编辑C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe.config文件,如下所示:

<configuration>
  <startup>
    <supportedRuntime version="v2.0.50727" />
    <supportedRuntime version="v4.0" />
  </startup>
  <rules> <------------ ADDED THIS NODE
    <rule name="skipConfig" type="Microsoft.Web.Deployment.DeploymentSkipRuleHandler"
          objectName="filePath" skipAction="Delete" 
          absolutePath="C:\inetpub\wwwroot\MyProject\myFile.whatever"/>
  </rules>
</configuration>

但它仍在我的登台服务器上覆盖有问题的文件。我开始编辑我的开发机器上的msdeploy.exe.config,当它不起作用时,我也更新了我的登台服务器上的msdeploy.exe.config,但同样,仍然没有工作。

我是不是错了?有关防止此文件被覆盖的任何建议吗?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

如评论中所述,您通常要做的是拥有一个基本Web.config文件,然后是一个特定于debug的文件和一个特定于release的文件。调试或发布部分将使用特定于此方案的内容添加/覆盖基本部分。这样你就可以上传两者,一切都会正常工作。

要了解有关web.config transformation的更多信息,请参阅:http://msdn.microsoft.com/en-us/library/dd465326(v=vs.110).aspx