Asp.net Web部署忽略MSBuild设置的SkipExtraFilesOnServer
我正在使用MSBuild在CruiseControl服务器上创建一个Web部署包来部署Web应用程序。部署时,包中未包含的所有内容都将在我们的服务器上删除 我尝试将SkipExtraFilesOnServer选项设置为true。但是它被Web部署所忽略Asp.net Web部署忽略MSBuild设置的SkipExtraFilesOnServer,asp.net,msbuild,package,msdeploy,Asp.net,Msbuild,Package,Msdeploy,我正在使用MSBuild在CruiseControl服务器上创建一个Web部署包来部署Web应用程序。部署时,包中未包含的所有内容都将在我们的服务器上删除 我尝试将SkipExtraFilesOnServer选项设置为true。但是它被Web部署所忽略 <Target Name="CreateDeploymentPackage"> <MSBuild Projects="$(Web)" Targets="Package" properties="Platfor
<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>
为什么这不起作用?我找到的每一份文档都说应该这样做。我不是100%地关注你,但我想我理解这里发生的事情。这是我对你情况的理解 您已将生成服务器配置为执行以下操作
SkipExtraFilesOnServer=true
您可能遇到的问题是将包发布到服务器时。当pass
SkipExtraFilesOnServer=true
被转换为msdeploy选项时-enableRule:DoNotDeleteRule
。在您的案例中将发布到包时应用(且相关)。现在,您需要确保在包发布到服务器时设置该选项。无论如何,这个选项并没有嵌入到包中。我不是100%地关注你,但是,我想我理解这里发生的事情。这是我对你情况的理解
您已将生成服务器配置为执行以下操作
SkipExtraFilesOnServer=true
您可能遇到的问题是将包发布到服务器时。当pass
SkipExtraFilesOnServer=true
被转换为msdeploy选项时-enableRule:DoNotDeleteRule
。在您的案例中将发布到包时应用(且相关)。现在,您需要确保在包发布到服务器时设置该选项。无论如何,该选项都不会嵌入到包中。我认为只有直接从MSBuild(DeployTarget=MSDeployPublish)部署时才使用“SkipExtraFilesOnServer”。该设置不包括在部署包中。@StevenLiekens不适用(尽管它的名称与包的大小写不符)。我想他遇到了别的事情,我在下面回答。@SayedIbrahimHashimi你不是创建web部署的人之一吗?@spankmaster79你使用生成的部署脚本吗,或者您是否直接从CruiseControl中的exec
任务执行msdeploy.exe?@StevenLiekens我拥有Visual Studio中的Web发布体验,该体验构建在msdeploy以及其他技术之上,但我不直接在msdeploy上工作。我认为“SkipExtraFilesOnServer”仅在直接从MSBuild部署时使用(DeployTarget=MSDeployPublish)。该设置不包括在部署包中。@StevenLiekens不适用(尽管它的名称与包的大小写不符)。我想他遇到了别的事情,我已经在下面回答了。@SayedIbrahimHashimi你不是创建web部署的人之一吗?@spankmaster79你是使用生成的部署脚本,还是直接从CruiseControl中的exec
任务执行msdeploy.exe?@StevenLiekens我拥有Visual Studi中的web发布体验o它构建在MSDeploy和其他技术之上,但我不直接使用MSDeploy。如果在IIS管理器中导入包而不是使用生成的帮助脚本,您会如何处理这种情况?@StevenLiekens我使用了UI,但不是最近,是否有保留其他文件的选项?如果没有,那就不好了。看起来s使用MSBuild创建包时不应用DoNotDelete规则。手动将其添加到executed.cmd时,实际上works@SayedIbrahimHashimi.cmd文件是否应该包含-enableRule:DoNotDeleteRule
命令选项?我在那里看不到它。手动添加规则有效。因此,我建议使用此解决方案d您是否处理在IIS管理器中导入包而不是使用生成的帮助程序脚本的情况?@StevenLiekens我使用了UI,但不是最近,是否有保留其他文件的选项?如果没有,则不好。在使用MSBuild创建包时,似乎未应用DoNotDelete规则。手动将其添加到实际上,executed.cmdworks@SayedIbrahimHashimi.cmd文件是否应该包含-enableRule:DoNotDeleteRule
命令选项?我在那里看不到它。手动添加规则有效。因此,我建议使用此解决方案