正如其他人所說的,只需在解決方案資源管理器中右鍵單擊解決方案,選擇添加>現有項目,然後瀏覽到常用項目.csproj文件,並將其從原始位置包含在解決方案中。
有兩個問題但它可能會或可能不會是一個問題,這取決於你的團隊規模:
1 - 常見的項目將包括在具有相對路徑的每個解決方案,該解決方案文件(IE:... \ CommonProject \ Common.csproj)。這意味着所有開發人員必須具有相同的工作文件結構,否則當他們嘗試打開主項目時會出錯。
2 - 在該方案中有共同的項目是由多個項目引用(說兩句 - A和B)和開發項目的工作必須作出修改,以共同的項目作爲自己的任務的一部分。開發人員無法知道他們所做的更改是否會破壞項目B,而不會實際檢出項目B並編譯它。隨着越來越多的項目引用共同項目,這種情況的風險會增加到難以管理的程度。
同樣,其他的都表示,沒有「正確」的方式做到這一點,但是我採取的方法如下:
1 - 使用持續集成,如巡航控制管理建設項目,並將通用項目作爲獨立項目放在服務器上。
2 - 創建您的源代碼控制到房子下的目錄內置常見的DLL。在構建機器上籤出此目錄,並且每當公共項目生成時,它將輸出DLL複製到DLL文件夾中,並將這些更改提交到源代碼管理。
3 - 所有開發人員的機器和構建服務器來控制公共DLL文件夾的位置和DLL的使用變量,而不是硬編碼路徑參考使用環境變量。 (IE:而不是C:\ Source \ MyCommonProjectDLLS \ Common.dll使用$(MyCommonLocation)\ Common.dll並將變量MyCommonLocation設置爲C:\ Source \ MyCommonProjectDLLS)
4 - 對於任何引用常見的DLL,在生成服務器上爲該項目設置一個CI觸發器來觀察常見的DLL文件夾。無論何時對其進行更改,構建服務器都應該構建所有正在使用的項目。
這立即讓你知道,如果你犯下任何其他項目的重大更改。唯一的缺點是,在這個模型中,消耗項目一旦產生就會迫使更新通用DLL。另一種方法是從源代碼管理版本生成Common DLL時對其進行版本化,並將每個版本放在常用DLL文件夾下的其自己的子目錄中。所以,你最終會得到:
常見的DLL
-1.0.0.1234
-1.0.0.1235
-1.0.0.1236
等。這樣做的好處是,每個項目都可以通過簡單地引用新版本的代碼來選擇何時更新公共DLL。然而,這樣做會削弱兩種方式,因爲這可能意味着某些項目的舊版本的通用代碼會比他們應該做的時間更長,這可能會在最終引入這些更改時增加所涉及的工作。
希望這會有所幫助。
你的意思是像Visual Studio中的「添加文件作爲鏈接」選項? http://support.microsoft.com/kb/306234(編輯:這是假設你根本不想使用共享項目?) –
只需在解決方案中包含不同的項目並添加一個引用該項目,而不是編譯的.dll。我們的源代碼庫有一個包含共享代碼的文件夾(主要是類庫項目),我們在樹的完全不同的區域引用來自解決方案的那些項目。難點在於弄清楚如何在源代碼控制中安排代碼,以便爲您的團隊做出這樣的直覺。 (並且沒有「正確」的方法來實現它,你如何設置它取決於很多因素,它可能需要一些時間才能正確地規劃出來。) – David
http://msdn.microsoft.com/en-us /library/1xhzskbe.aspx – 2012-12-28 14:24:01