Экранирование знака доллара в Postbuild - PullRequest
1 голос
/ 21 мая 2019

Я пытаюсь выполнить команду в Postbuild, которая использует знак доллара. Я перепробовал все решения здесь , но ни одно не работает.

echo "$(runtime.testbin)"

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

echo "%24(runtime.testbin)"

Но это печатает:

1> "4(runtime.testbin)"

Я также пробовал:

echo "%2524(runtime.testbin)"

который печатает:

1> "524(runtime.testbin)"

Ответы [ 2 ]

2 голосов
/ 21 мая 2019

Возможно, вам потребуется закодировать знак доллара и следующие скобки (не обязательно закрывающие скобки, но я лично считаю, что это выглядит некрасиво, кодируя только одну из них):

<PropertyGroup>
  <PostBuildEvent>echo "%24%28hello%29"</PostBuildEvent>
</PropertyGroup>
0 голосов
/ 22 мая 2019

Должна ли ваша команда выглядеть примерно так: $(runtime.testbin)?

В msbuild формат $(xxx) будет распознаваться как значение Свойство Msbuild .

Может быть, вы можете попробовать:

echo $ (runtime.testbin) => $ (runtime.testbin)

echo "$ (runtime.testbin)" => "$ (runtime.testbin)"

echo $ runtime.testbin => $ runtime.testbin

echo $:(runtime.testbin) => $ :( runtime.testbin)

Обновление: Ответ Мартина работает как шарм!На самом деле простое кодирование файла может заставить echo "%24(runtime.testbin)" работать.

...