Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net MS Web部署跳过删除规则不跳过_Asp.net_Msbuild_Webdeploy - Fatal编程技术网

Asp.net MS Web部署跳过删除规则不跳过

Asp.net MS Web部署跳过删除规则不跳过,asp.net,msbuild,webdeploy,Asp.net,Msbuild,Webdeploy,我已将以下跳过规则添加到我的项目中,但当我使用Web Deploy发布内容时,/config文件夹中的文件将被清除 我正在使用找到的流程,我发誓它以前是有效的 我已将以下内容添加到我的项目文件中: <PropertyGroup> <OnBeforePackageUsingManifest>AddCustomSkipRules</OnBeforePackageUsingManifest> </PropertyGroup> <Target

我已将以下跳过规则添加到我的项目中,但当我使用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>

阿达斯基普鲁士酒店
删除
肮脏的
.*\\config\\$
删除
肮脏的
.*\\config\\*$
当我发布时(使用包生成的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).
-------------------------------------------------------
开始执行msdeploy.exe
-------------------------------------------------------
“C:\Program Files\IIS\Microsoft Web Deploy V2\\msdeploy.exe”
-来源:包=“”
-dest:auto,includeAcls='False'
-动词:sync
-disableLink:AppPoolExtension
-disableLink:ContentExtension
-disableLink:CertificateExtension
-跳过:skipaction='Delete',objectname='dirPath',absolutepath='.\\config\\\$'
-跳过:skipaction='Delete',objectname='dirPath',absolutepath='.\\config\\\.$'
-setParamFile:“
信息:删除文件路径(默认网站/uPPK_32\config\New Text Document.txt)。

看起来正在添加跳过规则,但请注意,正在删除新的Text Document.txt。我怎样才能防止这种情况?我遗漏了什么吗?

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

绝对路径属性的值是正则表达式,因此,您可能需要像
'\\config'
'\\config$'
这样的值,而不是问题中显示的两个示例跳过设置的值。

嗨,Ben。您能修复它吗?我也有同样的问题!我还没有找到解决办法。我现在已经离开了,但我想知道为什么这不起作用。如果我找到一个,我会在这里发布修复…:)我的理解是,在使用Package/webdeploy时,这些SkipRules不会运行,请参阅:我也遇到了同样的问题,这就是我解决问题的原因。谢谢