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擴展該變量。 –