簡體   English   中英

Visual Studio(C#)使用環境變量生成輸出路徑

[英]Visual Studio (C#) Build Output path using environmental variables

是否可以在VS 2008中在構建輸出路徑中使用環境變量(等)/我正試圖找到一種解決方案,使我團隊中的幾個開發人員同時使用Windows XP和7以及所有使用不同Windows登錄名的人都可以修改項目共同引用的dll(源代碼保存在Source Safe上),並且不會弄亂相對路徑? 我已經嘗試過諸如%userprofile%和$(userprofile)之類的事情。

我研究了構建后事件,但是這些似乎並沒有真正解決我的問題。 遺憾的是,我也無法使用第三方加載項,因為它們將是非商業性的,並且幾乎不可能獲得任何許可證。

在Visual Studio 2010中用於構建的“輸出”路徑上類似的未解決的問題)

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

過去,我已經使用了subst命令來完成這種事情。 基本上,所有項目引用都定義與已知驅動器號(例如R:\\MyProject\\outputs相關的路徑。

然后,每個開發人員都可以將R:驅動器(或其他驅動器)映射到特定於其環境的文件夾結構。 只要映射的驅動器下面的文件夾結構相同,該映射的文件夾的位置就可以在計算機,內部版本和用戶之間變化。

這非常有效,因為開發人員可以使用簡單的批處理文件設置環境,並輕松在分支,項目等之間切換,並且項目內的相對路徑不會中斷。

PaulTee,問您嘗試目錄復制是否很困難? 像Dropbox / Synctoy以及其他從選定位置調用文件副本到預期共享位置的工具?

在您的情況下,我很想使用內置的環境變量。 也許有一種方法可以使它起作用,但是在那之前我會尋求這樣的解決方案。 我還要記住,不同的用戶編譯到同一目錄會與文件版本和文件鎖(由其他用戶使用)產生沖突。

如果您不介意多余的副本,則可以添加構建后事件,該事件將項目輸出復制到共享dll的通用位置,並且每個人都使用對該位置的非相對引用。 不過,它仍然需要對該目標位置進行標准化,因此也許這不是您想要的。 (以下示例至少允許獨立於驅動器號)

復制$(TargetPath)\\ dependencies

雖然我不太了解您的要求,但聽起來像符號鏈接目錄會有所幫助-您可以配置解決方案以輸出到一些將符號鏈接到每個單獨框上任意位置的文件夾。

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

幻影編輯 -mklink顯然是7中的新功能,但較舊的版本仍支持它(Russinovich再次進行救援):

http://technet.microsoft.com/zh-cn/sysinternals/bb896768

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM