2013-02-17 54 views
1

我目前正在將VB.NET網站遷移到VB.NET Web應用程序。以前我會將所有組件DLL(第三方類庫)存儲在bin文件夾中,並在運行時進行編譯。我已經在新應用程序中手動添加了對DLL的引用,但是bin文件夾是存儲這些附加DLL的理想位置嗎?這是否被認爲是最佳實踐,並且會在創建新構建時干擾應用程序生成的DLL?在哪裏存儲組件DLL?

很抱歉,如果這是一個相當基本的問題,我是新來的Web應用程序的Visual Studio中的概念。

回答

1

不,它不會干擾應用程序生成的dll。

如果這些是你在你的很多應用程序使用的DLL可以考慮在GAC註冊它們。

讓他們在垃圾箱既可以方便地部署(通過簡單地複製Web應用程序文件夾),如果你是在一個共享的主機環境中,你不能訪問在安裝您的DLL,這可能是你唯一的選擇GAC

+0

我們計劃遷移到Azure,所以GAC可能會被禁止。此外,我們只打算在一個Web應用程序中專門使用這些dll。謝謝! – QFDev 2013-02-17 10:16:28

+0

@QF_Developer依賴... Azure現在擁有虛擬機:)所以如果你使用這個選項,你可以做任何你想做的事情。這就是我使用,因爲我想要更多的控制。 – scartag 2013-02-17 10:17:26

2

作爲一般規則,我從來沒有直接把任何東西在bin文件夾。我總是允許構建過程將dll或其他文件複製到bin文件夾。

如果你添加一個引用,並確保「複製本地」設置爲true,則該DLL將構建過程中複製。這具有許多優點,特別是在使用版本控制時。

至於你應該把這些文件,我通常創建在解決方案級別的文件夾,並把DLL的那裏,然後我將它們添加從該位置引用。這使得它們可以很容易地被檢入到版本控制中(和許多版本控制系統一樣,被標記爲只讀)。

當檢查文件到bin文件夾版本控制,那麼你將遇到很多問題。另一個問題是,當你需要「清理」bin文件夾時,如果文件存在會導致問題。如果您使用我描述的方法,您可以隨時刪除bin文件夾中的所有文件。

更好的方法是使用NuGet包。如果你想要的文件不是現有NuGet包的一部分,那麼你可以創建自己的文件並運行你自己的本地NuGet服務器。