开发多个Visual Studio 2010扩展程序

4

我正在开发几个独立的Visual Studio扩展,它们分别在不同的解决方案中。当我打开其中一个并在调试器中启动实验性实例时,来自其他未打开的解决方案的其他扩展也会被加载。肯定有一种方法只在实验性实例中一次只运行一个扩展(特别是你当前正在开发的那个),对吧?

2个回答

5
您可以通过使用不同的任意值来创建多个实验性实例,从而在注册表中创建多个单独的基键,但我不确定如何轻松配置VSSDK项目(例如VsPackage项目)以发布到不同的VS hive。可能只是在每个项目文件内设置的属性。每个实验实例都是完全独立的。
因此,您可以运行“devenv.exe /RootSuffix MyFirstInstance”和“devenv.exe /RootSuffix MySecondInstance”,并且每个实例将使用不同的用户扩展集。这将导致分别使用注册表键HKCU \ Software \ Microsoft \ VisualStudio \ 10.0MyFirstInstance_Config和HKCU \ Software \ Microsoft \ VisualStudio \ 10.0MySecondInstance_Config。
自VS2005以来,他们似乎已经删除了许多有关此功能的文档,但它仍然似乎可以正常工作。

忘了提到 - 您使用重置实验 hive 的相同工具 (CreateExpInstance.exe) 创建每个单独的实验实例,但替换“RootSuffix”参数的不同值。 - tintoy
1
如果您在包或模板项目文件中定义了名为VSSDKTargetPlatformRegRootSuffix的属性(包括Microsoft.VsSDK.Common.targets中的任何内容),则它将把扩展文件发布到那里。 - tintoy

4
并不完全如此。当您在VS中构建和运行扩展项目时,它实际上被部署到VS的实验性实例中,但在调试/运行结束后它们不会被卸载。
您最好使用提供的VS SDK脚本重置实验实例。不幸的是,每次切换解决方案时都需要这样做。
在开始菜单中查找:
Microsoft Visual Studio 2010 SDK\Tools\Reset the Microsoft Visual Studio 2010 Experimental instance.lnk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接