Web部署忽略MSBuild设置的SkipExtraFilesOnServer

spa*_*r79 0 asp.net msbuild package msdeploy

我正在使用MSBuild在CruiseControl Server上创建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>
Run Code Online (Sandbox Code Playgroud)

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

Say*_*imi 5

我不是100%跟着你,但是,我想我知道这里发生了什么。这是我对您情况的理解。

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

  1. 使用msbuild.exe构建Web部署程序包
  2. SkipExtraFilesOnServer=true创建软件包时已设置
  3. 使用msdeploy.exe发布Web部署程序包

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