2013-08-04 54 views
7

在我的電腦我創建了一個叫做3DSMaxInstallDirectoryVS2010:如何使用環境變量生成後

在命令行系統環境變量,如果我給

echo %3DSMaxInstallDirectory%Plugins\ 

我得到

D:\Program Files\Autodesk\3ds Max 2011\Plugins\ 

在Visual Studio中,我進入了構建後部分

copy "$(TargetDir)$(TargetName).*" "$(3DSMaxInstallDirectory)Plugins\" 

但是在構建我得到

Error 4 The command "copy "C:\Users\Sebastian\Documents\Visual Studio 2010\Projects\MaxBridge\MaxBridgeImporterPlugin\bin\Debug\MaxBridgePlugin.*" "Plugins\" 
" exited with code 1. MaxBridgeImporterPlugin 

在谷歌的結果是建議一個令人困惑的混合的Visual Studio不支持電動汽車時,Visual Studio不支持電動汽車,Visual Studio的需要..%%和Visual Studio需要$(..) - 而且其中沒有一個似乎在我的電腦上工作。

什麼是在Visual Studio中使用我的環境變量的正確方法?

(是的,目錄存在,我不想明確設置路徑的原因是我準備分享這個項目,並且下載之後別人必須採取的每一步都是另一個障礙)

+1

你以管理員身份運行Visual Studio嗎? –

+0

@JeanHominal,我只是試過,但不幸的是它沒有任何區別。 – sebf

+0

在vs2010中使用%var%在構建後適用於我。 – rene

回答

2

這適用於我在項目的「構建事件」的後構建設置中。

echo %CodeContractsInstallDir% 
echo %DXSDK_DIR% 
echo "%ONLYME%" 

ONLYME是我的個人資料的用戶變量中的環境變量。

其他是系統變量。

如果我以管理員身份啓動VS2010,則ONLYME保持空白,但systemvars仍然具有預期的值。

我在V2010 SP1

+0

謝謝你基於我發現'3DSMaxInstallDirectory'不起作用,但'_3DSMaxInstallDirectory'。我相信它是由於Visual Studio在csproj中將'%'轉義爲'%25',當它被解析爲「%253」&「DSMax ...」時。 – sebf

0

Visual Studio的不正確編碼/在XML配置文件解碼 「特」 字。我可以通過將該命令手動轉義爲URL(http://www.w3schools.com/tags/ref_urlencode.asp)來按預期工作。

ECHO %CD% 

結果輸出日誌:

Target "PreBuildEvent" in file "blahblahblah" 
    Task "Exec" 
     Command: 
     ECHO %CD% 
     C:\blah\blah\blah\Debug 
    Done executing task "Exec". 

然而,使用URL項目proerties對話框逃脫似乎工作:

ECHO %25CD%25 
+0

我相信缺少的編碼是通過GUI輸入自定義命令(當然,如果您編輯.vcxproj文件,您必須編碼自己)。如果你想投票;發表評論。我有這個問題,這是我如何解決它。 編輯:使用/不使用編碼來澄清結果。 – whitey04

2

'%'字符由MSBuild的保留,所以您必須將其替換爲MSDN中記錄的%25十六進制轉義序列。

copy "$(TargetDir)$(TargetName).*" "%253DSMaxInstallDirectory%25\Plugins"實際上應該工作。但是:Visual Studio的命令行編輯器顯示它正確,但MSBuild然後錯誤地解釋%253。我不知道它是一個錯誤還是一個功能,但是你不能用一個數字來啓動你的環境變量的名字。