15

我们正在使用Visual Studio 2012和TFS在团队中开发VSPackage。在多台机器上开发时无法运行VSPackage

扩展在用于创建它的计算机上工作正常(通过向导)。在另一台计算机上,Visual Studio说我们试图运行它(使用F5)时,“具有类库输出类型的项目不能直接启动”。

该项目的输出确实是类库,并且在第一台机器上按F5启动Visual Studio的实验实例,并加载和运行扩展。

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

我们如何才能在未用于创建它的计算机上运行扩展?

+0

我在同一台机器上有这个问题:主要源代码在路径'C:\ Dev-1 \'我检出了相同的源代码到路径'C:\ Dev-2 \'现在新的复制给我你得到同样的错误。 –

+2

尝试使用'rootSuffix exp2'或其他方法启动Visual Studio - 这样,新副本将转到一个全新的VS实验性实例,并且不会与来自'C:\ Dev-1'的扩展冲突。 –

+0

@ Matze的答案解决了这个问题。谢谢。 –

回答

31

Visual Studio程序包项目类型向名为VISX的项目属性视图添加了一个附加选项卡。在该选项卡上默认选中Deploy VSIX content to experimental instance for debugging选项;这就是为什么在构建之后将包文件复制到当前用户配置文件的扩展目录中的原因。

如果要使用实验配置单元启动Visual Studio,则必须自定义类库项目的Debug设置。设置Start ActionStart external program并选择devenv.exe文件(file's位置取决于你的安装文件夹),并指定以下命令行参数:

/rootSuffix Exp 

这允许按F5调试扩展。

+4

谢谢!为了进一步讨论这个问题,这个特定的信息被存储在Projectname.csproj.user文件中,这个文件似乎没有通过TFS共享 - 它既没有包含在变更中,也没有被排除在变更之外。这将是一个手动修复,需要在每台机器上完成。 –

+1

你是对的;默认情况下,.user文件将从挂起更改列表中忽略(出于正当理由)。 – Matze

+0

是的,一旦我将本地代码放到源代码控制中,也会出现同样的问题。 .user文件没有被检入,让我陷入困境。 –

相关问题