Генерация пакета 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 в одинарных кавычках.