跳过规则不起作用

问题描述:

我已经根据此post编辑了我的csproj文件,但App_data中的额外文件将被删除。 另一方面,当我修改msdeploy命令(如帖子中所示)时,会应用跳过。跳过规则不起作用

我正在使用web部署v3。并且该命令被

msdeploy.exe" -verb:sync -source:package=c:\builds\app.zip -dest:auto -setParam:"IIS Web Application Name"="Default Web Site/app" 

反正是有调试的可导致此行为?

<PropertyGroup> <OnBeforePackageUsingManifest>AddCustomSkipRules</OnBeforePackageUsingManifest> 
    </PropertyGroup> 

<Target Name="AddCustomSkipRules"> 
    <ItemGroup> 
     <MsDeploySkipRules Include="SkipDeleteAppData"> 
     <SkipAction>Delete</SkipAction> 
     <ObjectName>filePath</ObjectName> 
     <AbsolutePath>$(_Escaped_PackageTempDir)\\App_Data\\.*</AbsolutePath> 
     <XPath> 
     </XPath> 
     </MsDeploySkipRules> 
     <MsDeploySkipRules Include="SkipDeleteAppData"> 
     <SkipAction>Delete</SkipAction> 
     <ObjectName>dirPath</ObjectName> 
     <AbsolutePath>$(_Escaped_PackageTempDir)\\App_Data\\.*</AbsolutePath> 
     <XPath> 
     </XPath> 
     </MsDeploySkipRules> 
    </ItemGroup> 
    </Target> 

我一直在检讨的Microsoft.Web.Publishing.targets,它看起来像这已经实现,所有你需要做的就是这个属性添加到您的MSBuild脚本:

<PropertyGroup> 
    <SkipApp_DataFolder>True</SkipApp_DataFolder> 
</PropertyGroup> 

如果您是从的MSBuild命令行运行,您可以使用:

msbuild MyProject.csproj /p:SkipApp_DataFolder=True ...

UPDATE:

你可能想试试这个,把这个代码在你的MSBuild文件的底部,之后的任何“进口”标签:

<Target Name="GenerateSkipRuleForAppData"> 
    <EscapeTextForRegularExpressions Text="$(_PackageTempDir)"> 
     <Output TaskParameter="Result" PropertyName="_Escaped_PackageTempDir" /> 
    </EscapeTextForRegularExpressions> 
    <ItemGroup> 
     <MsDeploySkipRules Include="SkipAddDataOnDeploy"> 
     <SkipAction></SkipAction> 
     <ObjectName>dirPath</ObjectName> 
     <AbsolutePath>$(_Escaped_PackageTempDir)\\App_Data$</AbsolutePath> 
     <XPath></XPath> 
     </MsDeploySkipRules> 
    </ItemGroup> 
    </Target> 

这是Microsoft.Web了“GenerateSkipRuleForAppData”目标的精确副本。没有条件的发布。目标(似乎条件工作不正常),这将覆盖原始目标,并应该强制执行它而不会中断目标的逻辑。

+0

不,它不工作。在IIS中的应用程序导入时,这些文件将从App_data中删除。 – user49126

+0

我甚至在构建输出中找到了SkipApp_DataFolder = True – user49126