在Postbuild中转义一个美元符号

时间:2019-05-21 16:05:08

标签: visual-studio msbuild post-build

我正在尝试在Postbuild中执行使用美元符号的命令。我已经尝试了所有解决方案here,但都无济于事。

echo "$(runtime.testbin)"

尝试执行此操作会在我尝试构建时抛出异常,并尝试使用以下命令转义:

echo "%24(runtime.testbin)"

但这会打印:

1> "4(runtime.testbin)"

我也尝试过:

echo "%2524(runtime.testbin)"

打印:

1> "524(runtime.testbin)"

2 个答案:

答案 0 :(得分:2)

您可能需要对美元符号和后面的括号进行编码(不一定要用右括号,但我个人认为仅对其中之一进行编码就很难看):

<PropertyGroup>
  <PostBuildEvent>echo "%24%28hello%29"</PostBuildEvent>
</PropertyGroup>

答案 1 :(得分:0)

您的命令是否必须类似于:$(runtime.testbin)

在msbuild中,格式$(xxx)将被识别为Msbuild Property的值。

也许您可以尝试:

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

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

echo $ runtime.testbin => $ runtime.testbin

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

更新: 马丁的答案就像魅力!实际上,对文件进行简单的编码可以使echo "%24(runtime.testbin)"正常工作。