為 VS Shell 指定 VSPackage 檔案位置
Visual Studio 必須能夠找出組件 DLL 以載入 VSPackage。 您可以利用多種方式找到該組件,如下表所述。
方法 | 描述 |
---|---|
使用 CodeBase 登錄機碼。 | CodeBase 機碼可用來指示 Visual Studio 從任何完整檔案路徑載入 VSPackage 組件。 機碼的值應該是 DLL 的檔案路徑。 這是讓 Visual Studio 載入套件組件的最佳方式。 這項技術有時稱為「CodeBase/私人安裝目錄技術」。在註冊過程中,CodeBase 的值會透過 RegistrationAttribute.RegistrationContext 類型的執行個體傳遞至註冊屬性類別。 |
將 DLL 放入 PrivateAssemblies 目錄。 | 將組件放在 Visual Studio 目錄的 PrivateAssemblies 子目錄中。 自動偵測位於 PrivateAssemblies 中的組件,但其在 [新增參考] 對話方塊中不可見。 PrivateAssemblies 和 PublicAssemblies 之間的差異為 PublicAssemblies 中的組件己列舉於 [新增參考] 對話方塊中。 如果您選擇不使用「CodeBase/私人安裝目錄」技術,則應該安裝到 PrivateAssemblies 目錄中。 |
使用強式命名的組件和 Assembly 登錄機碼。 | Assembly 機碼可用來明確指示 Visual Studio 載入強式命名的 VSPackage 組件。 機碼的值應該是組件的強式名稱。 |
將 DLL 放入 PublicAssemblies 目錄中。 | 最後,該組件也可以放入 PublicAssemblies 子目錄中。 系統會自動偵測位於 PublicAssemblies 中的組件,也會出現在 Visual Studio 的 [新增參考] 對話方塊中。 如果 VSPackage 組件包含其他 VSPackage 開發人員想要重複使用的受控元件,則應該只放在 PublicAssemblies 目錄中。 大部分組件都不符合此準則。 |
注意
針對所有相依組件使用強式命名、已簽署的組件。 這些組件也應安裝在您自己的目錄或全域組件快取 (GAC)。 這可防止與具有相同基底檔名的組件發生衝突,稱為弱式名稱繫結。