msdeploy仅跳过web.config root

时间:2016-08-10 16:00:34

标签: web-config root msdeploy skip

我使用msdeploy的软件包提供程序部署网站,我试图只跳过Web.config根文件。

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

这是我使用的命令:

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

Info: Object filePath (C:\ProgramFiles\TeamCity\buildAgent\work\d29656a51131c443\src\Parapa.Website\obj\Test\Package\PackageTmp\Views\Web.config) skipped
Info: Object filePath (C:\ProgramFiles\TeamCity\buildAgent\work\d29656a51131c443\src\Parapa.Website\obj\Test\Package\PackageTmp\Web.config) skipped due to skip directive 'CommandLineSkipDirective 1'.

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

补充关于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}。

例如

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