2011-04-01 205 views
30

在VS 2008中可以在構建輸出路徑中使用環境變量(等)/我試圖找到一個解決方案,其中幾個開發人員使用這兩個環境變量Windows XP & 7以及所有使用不同的Windows登錄,都可以修改項目通用引用的dll(源代碼保存在源代碼安全中)並且不會搞亂相對路徑?我嘗試過諸如%userprofile%和$(userprofile)之類的東西。Visual Studio(C#)使用環境變量構建輸出路徑

我已經看過帖子構建事件,但這些似乎並沒有提供一個問題。可悲的是,我無法使用第三方附加軟件,因爲這些軟件是非商業軟件,幾乎不可能獲得授權。

(在Output path for build in visual studio 2010類似懸而未決的問題)

回答

1

PaulTee, 它是一個鐵打問你嘗試目錄複製?像Dropbox/Synctoy和其他工具一樣,從選擇位置調用文件複製到預期的共享位置?

在你的情況下,我很樂意使用內置的環境變量。也許有辦法讓它工作,但在那之前我會去尋求這樣的解決方案。我也會記住,編譯到同一目錄的不同用戶會與文件版本和文件鎖定(由其他用戶使用)發生衝突。

+0

我將不得不明確聲明SyncToy是免費的Microsoft工具,http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c26efa36-98e0-4ee9-a7c5-98d0592d8c52它也有一個API的http://www.microsoft.com/downloads/en/details.aspx?FamilyID=89adbb1e-53ff-41b5-ba17-8e43a2e66254&displaylang=en開發自己的目的,就像這樣。 – Independent 2011-04-01 16:27:08

+0

我會給出一個看看 - ta – PaulTee 2011-04-07 14:23:46

0

儘管我不太明白你的要求,但它聽起來像符號鏈接的目錄會有所幫助 - 你可以配置解決方案輸出到某個文件夾,該文件夾將被鏈接到每個單獨的盒子上的任意位置。

http://en.wikipedia.org/wiki/NTFS_symbolic_link

鬼編輯 - mklink是在7顯然是新的,但舊版本仍然支持它(Russinovich介紹救援再次):

http://technet.microsoft.com/en-us/sysinternals/bb896768

+0

這可能是一個選項 - 我從來沒有在XP上試過它,但是在W7中這樣做,我們都會在某個時候去W7 - ta。 – PaulTee 2011-04-07 14:26:07

2

我用subst命令在過去完成這種事情。基本上所有項目參考都定義了與已知驅動器盤符相關的路徑,如R:\MyProject\outputs

然後每個開發人員可以映射R:驅動器(或其他)至他們的環境的文件夾結構特定。只要映射的驅動器的下方的文件夾結構是相同的,即映射文件夾的位置可機,構建和用戶之間變化。

這個工程以及開發人員就可以建立自己的環境,一個簡單的批處理文件,輕鬆地分支之間,項目等,並在項目中的相對路徑功能不破切換。

+0

看起來比符號鏈接和路口更容易 - 好的,謝謝。 – PaulTee 2011-04-07 14:26:58

1

如果你不介意額外的副本,你可以添加後期生成事件副本項目產出爲共享DLL大家共同商定的位置,並使用該位置的非相對引用。這將是,雖然需要目標位置的標準化,所以也許這是不是你在找什麼。(下面的例子將至少允許驅動器盤符獨立)

複製$(TARGETPATH)\依賴

+0

生成後事件嚇到我了 - 有足夠的「有趣」習慣C#,.NET,Visual Studio和SourceSafe等初學者!不過謝謝。 – PaulTee 2011-04-07 14:25:04

+0

只要等到你到達TFS,然後......大聲笑 – JeffSahol 2011-04-07 15:02:55

31

您需要打開的csproj文件中的文本編輯器和手動的輸入你的環境變量OutputPath部分。當您嘗試從IDE執行此操作時,Visual Studio會轉義'$','('和')'。

+0

我可以證實這是答案,因爲我必須自己做。 – Tergiver 2011-04-04 13:08:45

+0

迂迴 - 謝謝 – PaulTee 2011-04-07 14:23:30

+8

我發現你不得不這樣做。 – tofutim 2013-09-16 18:13:33

相關問題