Dot-Net
何時以及何時不安裝到 GAC 中?
什麼時候應該安裝到 GAC 中,什麼時候不應該?(實際上,我指的是在客戶購買我們的產品後安裝在他們的機器上)。
- 我有一個僅用於我的一個應用程序(GAC 或無 GAC)的程序集?
- 我有一個所有應用程序共享的程序集(GAC 或非 GAC)?
- 我的所有應用程序都可能使用不同版本的程序集(GAC 或非 GAC)?
這是三種情況……但我相信還有更多。我不一定只尋找這三個問題的答案。
類似的問題:使用 GAC 的優點和缺點是什麼?
一般 MS 指南
- 不
- 不
- 不
GAC 實際上是 Microsoft 通用 .NET 庫的儲存庫。是的,他們也讓開發人員使用它,但根據經驗,如果您不需要 GAC,請不要使用它。如果沒有傷害,請保持簡單和本地化。
- 我只會出於性能原因考慮 GAC,例如,如果您有一些大型程序集,請嘗試將它們放入 GAC 和NGEN中。它應該會顯著提高性能。Microsoft 在安裝期間為所有標準 .NET 框架程序集執行此操作(現在您知道為什麼安裝需要這麼長時間了)。Paint.NET 也這樣做(以改善他們的應用程序的啟動時間)。然而,我們大多數人並不在大型框架或 Photoshop 競爭對手上工作,所以大多數時候,在 GAC 中進行組裝所帶來的性能提升是微乎其微的。不值得放棄簡單的 x-copy 部署。
- 一些開發人員可能會使用 GAC 來確保權限不足的使用者無法刪除或修改他們的程序集。
- 對於其他人來說,這可能是出於版本控制的原因,但在這裡你真的應該重新考慮。我不會重複已經說過的話,你可以在這裡閱讀為什麼。
並且不要忘記,一旦您想部署到 GAC,您的安裝程序將需要管理員權限,您幾乎可以忘記點擊一次部署等…