2010-11-03 70 views
2

是否可以將項目建立到通用目錄而不是每個項目bin文件夾?將Visual Studio項目構建到通用目錄而不是bin?

目的是讓它更容易控制我所有的二進制文件。我該怎麼做,這種方法有什麼缺陷?

您可以選擇將項目構建到另一個目錄(公共目錄?)而不是bin/debug和。

+4

二進制文件的源代碼控制?爲什麼? – 2010-11-03 14:46:13

+0

@Mitch所以你有一個規範的位置。我的問題是爲什麼不把它們控制在'bin'中;你應該是源頭控制整個項目? – 2010-11-03 14:48:34

+0

,因爲並非所有團隊成員都可以訪問所有項目,但大多數項目需要其他項目的參考。如果這是有道理的。 – Martin 2010-11-03 14:48:43

回答

1

如果你的意思是DLL文件/程序集,那麼你像往常一樣建立到bin/release,然後複製你需要的DLL文件到一個公共目錄然後引用它們,所以當你重建原來的解決方案時,你不必擔心您使用的是哪個版本,或者重新編譯其他相關項目,因爲版本在通用目錄中沒有更改。

+0

是的,它確實有道理!謝謝... – Martin 2010-11-03 14:56:21

+0

很酷,所以你只允許它們在公共目錄中引用dll,而不是解決方案bin/release目錄。 – 2010-11-03 14:57:45

1

碰巧人們建立到另一個文件夾而不是bin(例如解決方案目錄中的bin文件夾而不是項目目錄)。我懷疑你這樣做會有什麼問題。但是由於你要檢查它,所以你必須記住不要只讀(所以你可以構建它們)。源代碼管理程序通常會鎖定文件。

你也可以考慮讓bat腳本在成功構建後將文件複製到另一個位置。

+0

感謝您的意見! – Martin 2010-11-03 14:57:08

2

如果您的意思是構建您的項目並將DLL文件放入共享文件夾中,那麼我們目前是這樣做的,但我們使用continuous integration(CI),所以我們可以知道項目更改何時導致另一個項目打破。

當您使用其他項目中引用的特定於版本的DLL文件時,您可能還會遇到問題。

您也可以不使用bat文件複製DLL文件,而是使用Visual-Studio內置的post-build命令。它與批處理文件相同,只是在CruiseControl中不需要特殊設置來複制文件。如果開發人員對後期構建命令進行了更改並將其檢入,則會由CruiseControl自動執行。另外,如果您希望開發者共享二進制文件,我會將它們放在source control中,以確保每個人都共享相同的DLL文件,而不是他們自己的DLL文件的本地構建副本(這可能不同於作爲一些編譯指令的實際構建服務器可能/可能未被定義)。

0

我不會把你的二進制輸出到源代碼管理。只能放置源文件,項目文件和解決方案文件。

0

我們使用後生腳本來複制到預期的位置。這是有效的,但非常複雜(因爲腳本很難寫入&難以調試)。

2

對於C++項目:
右鍵單擊項目 - >屬性 - >鏈接器 - >輸出文件 設置你的目錄下有。

對於C#項目:
右鍵單擊項目 - >屬性 - > Builld - >輸出路徑

相關問題