在多台电脑上开发时无法运行VSPackage

18

我们正在团队中开发一个VSPackage,使用的是Visual Studio 2012和TFS。

该扩展在创建它的计算机上(通过向导)运行良好。但是,在另一台计算机上,当我们尝试运行它(使用 F5)时,Visual Studio会提示“具有类库输出类型的项目无法直接启动”。

该项目的输出确实是类库,而在第一台计算机上按下 F5 会启动带有加载并运行该扩展的Experimental Instance of Visual Studio。

通过查看第二台计算机上的 %LOCALAPPDATA%\Microsoft\VisualStudio\11.0Exp\Extensions,我们可以看到已经构建了扩展,并尝试将其注册到VS中。 我们还在第二台计算机上创建了另一个扩展,并尝试在第一台计算机上运行它。 它显示了相同的错误。

我们如何让未用于创建扩展的计算机运行该扩展?


我在同一台机器上遇到了这个问题:主代码路径为 C:\Dev-1\。我将相同的源代码检出到路径 C:\Dev-2\,现在新副本给了我与你一样的错误。 - A-Sharabiani
2
尝试使用 rootSuffix exp2 或其他方式启动 Visual Studio - 这样,新副本将进入全新的 VS 实验实例,并且不会与来自 C:\Dev-1 的扩展冲突。 - Amadeusz Wieczorek
@Matze的回答解决了这个问题。谢谢。 - A-Sharabiani
1个回答

35

Visual Studio的“包”(package)项目类型会在项目属性视图中添加一个名为VISX的额外选项卡。在该选项卡上,默认情况下勾选了“在调试时将VSIX内容部署到试验实例”选项;这就是为什么包文件在编译后被复制到当前用户配置文件的扩展目录下的原因。

如果您想使用试验性的Hive启动Visual Studio,您必须自定义类库项目的Debug设置。将Start Action设置为Start external program,并选择devenv.exe文件(文件位置取决于您的安装文件夹),并指定以下命令行参数:

/rootSuffix Exp

按下F5键可以调试扩展程序。


4
谢谢!为了进一步讨论这个问题,这个特定信息被存储在Projectname.csproj.user文件中,似乎没有通过TFS共享 —— 它既不在包含的更改中也不在排除的更改中。这将需要手动修复,需要在每台机器上完成。 - Amadeusz Wieczorek
1
你是正确的;默认情况下,.user文件被忽略在待处理更改列表中(出于良好的原因)。 - Matze
是的,我曾经遇到过同样的问题,当我将本地代码放入源代码控制时,.user文件没有被检入,这给我带来了麻烦。 - Moble Joseph
终于!多亏了你,我终于回来了,非常感谢。顺便说一下,为了使其正常工作,我还需要完成另一个答案中的步骤:https://dev59.com/jWsz5IYBdhLWcg3wn5VP - Allen Rice
将其放入放置在版本控制下的 .props 文件中应该可以正常工作,而无需自定义 .user 文件。 - Stelio Kontos

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