2009-05-30 109 views
1

我們有幾個c#項目,庫和解決方案(一些asp.net應用程序,幾個類庫,Windows應用程序,如Windows服務和winform應用程序等),其中大多數取決於每個其他人輸出dll。我們的一些項目被分組到解決方案中,並使用項目依賴關係。但有些項目不是。 我們(不幸)使用VSS來管理源代碼。當將程序集引用到項目中時,有時我會看到存儲在vss中的刷新文件,但實際的dll永遠不會出現在最初獲取最新版本時,有時只是程序集而不是vss管理的,有時候只是程序集,它們似乎是由vss管理的。正如你所猜測的,爲我們管理這些文件是一場噩夢,特別是在發佈網絡應用程序時。我們無法確定圖書館dll的最新版本是否正在發佈。 您可以建議關於管理這種複雜性的任何最佳實踐嗎?任何物品也歡迎。我們應該將所有庫保存在網絡文件夾中並使用刷新文件嗎?那麼團隊中的每個開發人員都應該將他的輸出文件複製到該網絡共享中?visual studio.net dll參考問題

感謝, 了Umut

回答

2

我做些什麼來解決這個問題是在我的web應用程序bin目錄下刪除被引用的DLL的一個副本,並將它們包括爲項目,保存在安全來源的一部分。

這樣,如果DLL被更新,就像Check Out - Overwrite - Check In一樣簡單,並且團隊中的所有成員都可以擁有最新的文件。

此外,它使部署變得簡單,因爲在發佈過程中包含文件。只需將構建類型設置爲內容即可。

1

最簡單和最手動的方法是在某處爲某種文檔定義Web應用程序,並指出它的依賴關係,它們的版本以及它們在源代碼安全中的位置。將其添加爲構建腳本的一部分。

較難和較少的手動方法是實現某種形式的構建自動化。我建議大家看看MSBuild(http://msdn.microsoft.com/en-us/library/0k6kkbsd.aspx),它使用XML文件作爲一種腳本語言。下載社區任務包(http://msbuildtasks.tigris.org/)。使用這兩個工具,你應該能夠生成一個MSBuild文件,它可以從sourcesafe得到你的各種解決方案,然後構建它們(請注意,你可以從MSBuild文件中調用MSBuild文件。另外請注意,Visual Studio解決方案文件是MSBuild文件 - 您可以讓MSBuild腳本運行開發人員在Visual Studio中創建的構建版本)。完成後,您可以隨時在任意位置部署結果。