1
与Visual Studio战斗以在预构建步骤中正确地逃避美元符号($)。目标是提供一个变量名称作为一个litteral。 VS不应该尝试处理变量名称。如何在预构建步骤中逃离美元符号
documentation指出应该使用%xx(其中xx是字符的十六进制值)。
我已经试过如下:
%24(var.Data.WebHost.ProjectDir)
但结果是
4(var.Data.WebHost.ProjectDir)
而不是
$(var.Data.WebHost.ProjectDir)
什么我错在这里做什么?
更新1:正确的语法是将$符号放在双引号之间。
"$"(var.Data.WebHost.ProjectDir)
就是答案。
问题是,你得到了你所要求的,MSBuild确实没有处理变量名。所以%24(yadayada)被复制到prebuild事件中。这是由命令处理器Cmd.exe执行的。其中特别处理%2,它将其替换为第二个命令参数。没有。您*确实希望MSBuild扩展该变量。 –