Web Deploy忽略由MSBuild设置的SkipExtraFilesOnServer

时间:2015-06-25 14:28:38

标签: asp.net msbuild package msdeploy

我使用MSBuild在CruiseControl服务器上创建Web部署包以部署我们的Web应用程序。在部署时,我们的服务器上将删除不在包中的所有内容。

我尝试将选项SkipExtraFilesOnServer选项设置为true。但Web Deploy

会忽略它
<Target Name="CreateDeploymentPackage">
    <MSBuild Projects="$(Web)" Targets="Package"
      properties="Platform=$(Platform);
      Configuration=$(Configuration);
      DeployOnBuild=False;
      DeployTarget=Package;
      SkipExtraFilesOnServer=True;
      MSDeployUseChecksum=True;
      PackageLocation=$(DeployDirectory)\_PublishedWebsites\DeployPackage\$(CurrentProject).zip;
      PackageAsSingleFile=True;
      _PackageTempDir=$(PackageOutputDir)\temp;">
    </MSBuild>
</Target>

为什么这不起作用?我发现的每一份文件都说应该。

1 个答案:

答案 0 :(得分:4)

我没有100%关注你,但我想我明白这里发生了什么。以下是我对你情况的了解。

您已将构建服务器配置为执行以下操作。

  1. 使用msbuild.exe构建Web部署包
  2. 您在创建包时设置了SkipExtraFilesOnServer=true
  3. 使用msdeploy.exe
  4. 发布Web部署包

    您可能遇到的问题是包发布到服务器的时间。传递SkipExtraFilesOnServer=true转换为msdeploy选项-enableRule:DoNotDeleteRule时。在您的案例中将发布到软件包时应用(和相关)。现在,您需要确保在将包发布到服务器时设置该选项。无论如何,该选项都没有嵌入包中。