msdeploy仅跳过web.config root

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了msdeploy仅跳过web.config root相关的知识,希望对你有一定的参考价值。

我正在使用包提供程序和msdeploy部署一个网站,我试图只跳过Web.config根文件。

我有这个命令但不幸的是它跳过任何Web.config文件而不仅仅是我想要的根Web.config文件。我已阅读此论坛和其他网站上关于同一问题的其他帖子,但它仍然无效。我不明白为什么msdeploy使用起来如此复杂,这简直太荒谬了。

这是我正在使用的命令:

msdeploy -source:package='"srcParapa.WebsiteobjTestPackageParapa.Website.csproj.zip"'
-dest:auto,computerName='http://computer/MSDeployAgentService',username='luis',password='luis',includeAcls='False'
-verb:sync 
-disableLink:AppPoolExtension 
-disableLink:ContentExtension 
-disableLink:CertificateExtension
-setParamFile:""srcParapa.WebsiteobjTestPackageParapa.Website.csproj.SetParameters.xml"" -setParam:"IIS Web Application Name"="staging-cm" 
-skip:objectName=filePath,absolutePath='.*\Web.config$' 
-enableRule:DoNotDelete

Info: Object filePath (C:ProgramFilesTeamCityuildAgentworkd29656a51131c443srcParapa.WebsiteobjTestPackagePackageTmpViewsWeb.config) skipped
Info: Object filePath (C:ProgramFilesTeamCityuildAgentworkd29656a51131c443srcParapa.WebsiteobjTestPackagePackageTmpWeb.config) skipped due to skip directive 'CommandLineSkipDirective 1'.
答案

将根文件夹添加到Regex表达式,然后它不应该跳过views文件夹中的web.config只有root:

-skip:objectName=filePath,absolutePath='.*\PackageTmp\Web.config$' 
另一答案

为了补充关于Chief7的提及:

-skip:objectName=filePath,absolutePath='.*\PackageTmp\Web.config$'

如果您使用-enableRule:DoNotDelete,则此命令有效,因为将从源跳过web.config但将从目标中删除。因此,如果您不使用-enableRule:DoNotDelete,则另一种方法是在目标web.config上使用skipAction。

-skip:objectName=filePath,absolutePath='{WebSiteName}\Web.config$',skipAction=Update

用您的网站名称替换{WebSiteName}。

e.g

-skip:objectName=filePath,absolutePath='CommicsTest\Web.config$',skipAction=Update

以上是关于msdeploy仅跳过web.config root的主要内容,如果未能解决你的问题,请参考以下文章

text 鞅 - 模拟器(仅跳过)

如何仅跳过“编译”和“安装”目标而不是“测试”目标的测试?

使用 msdeploy 转换文件

如何将空参数传递给 msdeploy powershell deploy 命令

使用 MSDeploy 为包设置应用程序池

使用 msdeploy 转换文件