MS Web Deploy跳过删除规则未生效

5
我已经向我的项目添加了以下跳过规则,但当我使用Web Deploy发布内容时,/config文件夹中的文件被清除了。
我正在使用在这里找到的过程,我发誓以前它是有效的。
我已将以下内容添加到我的项目文件中:
<PropertyGroup>
    <OnBeforePackageUsingManifest>AddCustomSkipRules</OnBeforePackageUsingManifest>
</PropertyGroup>
<Target Name="AddCustomSkipRules">
    <ItemGroup>
      <MsDeploySkipRules Include="SkipConfigFolder">
        <SkipAction>Delete</SkipAction>
        <ObjectName>dirPath</ObjectName>
        <AbsolutePath>.*\\config\\$</AbsolutePath>
        <XPath></XPath>
      </MsDeploySkipRules>
      <MsDeploySkipRules Include="SkipConfigSubFolders">
        <SkipAction>Delete</SkipAction>
        <ObjectName>dirPath</ObjectName>
        <AbsolutePath>.*\\config\\.*$</AbsolutePath>
        <XPath></XPath>
      </MsDeploySkipRules>  
    </ItemGroup>
</Target>

当我通过命令行发布(使用包生成的cmd文件),会输出以下内容:
-------------------------------------------------------
 Start executing msdeploy.exe
-------------------------------------------------------
 "C:\Program Files\IIS\Microsoft Web Deploy V2\\msdeploy.exe" 
   -source:package='<MyPackageFile>' 
   -dest:auto,includeAcls='False' 
   -verb:sync 
   -disableLink:AppPoolExtension 
   -disableLink:ContentExtension 
   -disableLink:CertificateExtension 
   -skip:skipaction='Delete',objectname='dirPath',absolutepath='.*\\config\\$' 
   -skip:skipaction='Delete',objectname='dirPath',absolutepath='.*\\config\\.*$' 
   -setParamFile:"<MySetParameters.xml>"
Info: Deleting filePath (Default Web Site/uPPK_32\config\New Text Document.txt).

看起来跳过规则已经添加,但是注意到 New Text Document.txt 文件已被删除。我应该如何防止它?我有什么遗漏的吗?


嗨Ben,你能修复一下吗?我也遇到了同样的问题! - fcaldera
我还没有找到解决方案。目前我已经转而做其他事情了,但我很想知道为什么这个方法不起作用。如果我找到了解决方案,我会在这里发布修复方法... :) - Ben Ripley
我的理解是,在使用Package/Web Deploy时,这些SkipRules不会被运行,请参见:https://dev59.com/I2855IYBdhLWcg3wiU31#5659390 - uniquelau
2个回答

3
< p > absolutePath属性的值是正则表达式,因此您可能希望使用像'\\config''\\config$'这样的值来代替您问题中显示的两个示例跳过设置的值。


我曾经遇到过同样的问题,这是解决方法。谢谢! - Alexandre

3
我认为你的第二个跳过行需要使用filePath而不是DirPath,因为你在那里选择文件。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接