MSBuild包生成用双引号括起xpath

时间:2016-05-27 00:09:46

标签: xpath msbuild msdeploy

我正在使用以下脚本生成项目的部署包

"C:\Program Files (x86)\MSBuild\12.0\bin\msbuild.exe" MyProjectFile.csproj /t:Clean;Build;Package /p:Configuration="Debug" /m /P:Platform=AnyCPU

我还添加了一个MsDeploySkipRules项来在部署包时跳过空目录,这是在我构建的自定义跳过操作目标中添加的。

<Target Name="AddSkipActions" AfterTargets="GenerateSkipRuleForAppData">
  <MsDeploySkipRules Include="SkipEmptyDirectories">
    <SkipAction></SkipAction>
    <ObjectName></ObjectName>
    <AbsolutePath></AbsolutePath>
    <XPath>dirPath[count^(*^)=0]</XPath>        
  </MsDeploySkipRules> 

我遇到的问题是在创建包时,它在部署命令文件中用双引号包装xpath表达式,如下所示:

 -skip:xpath="dirPath[count^(*^)=0]"

当我运行命令时,我收到以下错误:

Error: 'dirPath[count^(*^)=0]' has an invalid token.

我可以通过手动修改命令文件来解决此问题:

-skip:xpath='dirPath[count^(*^)=0]'

关于如何修改程序包的生成方式以使用单引号代替双引号的任何想法 - 我用Google搜索疯狂,但似乎无法找到相同的问题。

1 个答案:

答案 0 :(得分:0)

修正了问题,它是用于生成包的exe。

我将msbuild路径更改为&#34; C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ msbuild.exe&#34;在修复了一些错误之后,它现在用单引号生成xpath参数。