将 VSPackage 文件位置指定到 VS Shell

Visual Studio 必须能够找到程序集 DLL 才能加载 VSPackage。 可以按下表中所述以各种方式找到它。

方法 Description
使用 CodeBase 注册表项。 CodeBase 密钥可用于指示 Visual Studio 从任何完全限定的文件路径加载 VSPackage 程序集。 键的值应为 DLL 的文件路径。 这是让 Visual Studio 加载你的软件包程序集的最佳方式。 此方法有时称为“CodeBase/专用安装目录技术”。在注册期间,代码库的值通过类型的实例 RegistrationAttribute.RegistrationContext 传递给注册属性类。
将 DLL 放入 PrivateAssemblies 目录。 将程序集置于 Visual Studio 目录的 PrivateAssemblies 子目录中。 会自动检测位于 PrivateAssemblies 中的程序集,但在 “添加引用 ”对话框中不可见。 PrivateAssembliesPublicAssemblies 之间的区别在于 PublicAssemblies 中的程序集会在 “添加引用” 对话框中列出。 如果选择不使用“CodeBase/专用安装目录”技术,则应安装到 PrivateAssemblies 目录中。
使用强名称程序集和程序集注册表项。 程序集密钥可用于显式指示 Visual Studio 加载强命名的 VSPackage 程序集。 键的值应该是程序集的强名称。
将 DLL 置于 PublicAssemblies 目录中。 最后,程序集也可以放置在 PublicAssemblies 子目录中。 会自动检测 位于 PublicAssemblies 中的程序集,并且也会显示在 Visual Studio 的 “添加引用 ”对话框中。

仅当 VSPackage 程序集包含其他 VSPackage 开发人员打算重复使用的托管组件时,才应将其放置在 PublicAssemblies 目录中。 大多数程序集不符合此条件。

注释

对所有依赖程序集,应使用强名称和已签名的程序集。 这些程序集还应安装在你自己的目录或全局程序集缓存(GAC)中。 这可以防止与具有相同基文件名的程序集(这种现象称为弱名称绑定)发生冲突。