Генерация пакета MSBuild, заключающая xpath в двойные кавычки

Я создаю пакет развертывания для моего проекта с помощью следующего сценария

"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 в двойные кавычки в командном файле deploy, например:

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

Когда я запускаю команду, я получаю следующую ошибку:

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

Я могу исправить это, изменив командный файл вручную следующим образом:

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

Любые идеи о том, как исправить способ создания пакета, чтобы использовать одинарные кавычки вместо двойных кавычек - я гуглил как сумасшедший, но, похоже, не могу найти ту же проблему.

1 ответ

Исправлена ​​проблема, это был exe-файл, используемый для генерации пакета.

Я изменил путь к msbuild на "C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe" и после исправления некоторых ошибок теперь генерирует параметр xpath в одинарных кавычках.

Другие вопросы по тегам