指定 VS Shell 的 VSPackage 文件位置
Visual Studio 必须能够找到程序集 DLL 才能加载 VSPackage。 可以按下表中所述以各种方式找到它。
方法 | 说明 |
---|---|
使用 CodeBase 注册表项。 | CodeBase 密钥可用于指示 Visual Studio 从任何完全限定的文件路径加载 VSPackage 程序集。 键的值应为 DLL 的文件路径。 这是让 Visual Studio 加载包程序集的最佳方式。 此方法有时称为“CodeBase/专用安装目录技术”。在注册期间,代码库的值通过类型的实例 RegistrationAttribute.RegistrationContext 传递给注册属性类。 |
将 DLL 放入 PrivateAssemblies 目录。 | 将程序集 置于 Visual Studio 目录的 PrivateAssemblies 子目录中。 会自动检测位于 PrivateAssemblies 中的程序集,但在“添加引用”对话框中不可见。 PrivateAssemblies 和 PublicAssemblies 之间的区别在于,PublicAssemblies 中的程序集在“添加引用”对话框中枚举。 如果选择不使用“CodeBase/专用安装目录”技术,则应安装到 PrivateAssemblies 目录中。 |
使用强名称程序集和程序集注册表项。 | 程序集密钥可用于显式指示 Visual Studio 加载强命名的 VSPackage 程序集。 键的值应该是程序集的强名称。 |
将 DLL 置于 PublicAssemblies 目录中。 | 最后,程序集也可以放置在 PublicAssemblies 子目录中。 会自动检测位于 PublicAssemblies 中的程序集,并且也会显示在 Visual Studio 的“添加引用”对话框中。 仅当 VSPackage 程序集包含其他 VSPackage 开发人员打算重复使用的托管组件时,才应将其放置在 PublicAssemblies 目录中。 大多数程序集不符合此条件。 |
注意
对所有依赖程序集使用强命名的已签名程序集。 这些程序集还应安装在你自己的目录或全局程序集缓存(GAC)中。 这可以防止与具有相同基文件名的程序集(称为弱名称绑定)冲突。