0
對於我的工作,我必須在powershell腳本中定義一個預生成事件,該腳本將添加到我安裝NuGet包的目標項目中。腳本安裝罰款的第一次,被添加的正確方法是這樣的預生成事件:如何獲取Project Pre Build Event屬性的文字字符串值
xcopy $(SolutionDir)Some\Path $(ProjectDir)Some\Other\Path
當我卸載並重新安裝我的NuGet包,現有的預建立從目標項目被請求的事件。問題是,當預構建事件中使用像$(ProjectDir)或$(SolutionDir)這樣的環境變量時,我的powershell腳本將獲取與該變量關聯的值。像這樣:
c:\Path\To\Solution\Dir
或:
C:\Path\To\Project\Dir
但我想它給我與它的ENV變量的字符串。 如何從PowerShell中的預生成事件中獲取字面值?
添
更新::
我做了一些更多的研究,並得出結論認爲,在構建活動中的環境變量不會被替換,除非它是一個Windows安裝程序項目。
是否有另一種方法可以設置項目的預構建事件,並且當其他人擁有我的代碼時,他仍然可以使用相同的預構建事件來構建項目? – iPhantomGuy
@iPhantomGuy,這個問題的關鍵不在於您可以設置項目的預構建事件,因爲您在構建事件中使用環境變量「$(ProjectDir)」,「$(SolutionDir)」,但是,那些變量被認爲是構建事件中宏的默認變量名稱。因此,要解決此問題,您應該使用另一個ID更改這些環境變量,例如「$(PathForProjectDir)」。 –
我在哪裏定義那個變量呢?如果其他人安裝我的軟件包,然後嘗試構建它而不做其他任何事情,它會繼續工作嗎? – iPhantomGuy