Visual Studio扩展(VSPackage)在所有实验实例中运行,但在作为.vsix安装后不运行,VS2010除外

我正在编写一个针对VS2010,VS2012和VS2013的Visual Studio扩展。 它运行并在每个实验实例中成功初始化,没有任何问题。 当我安装构建生成的VSIX时,它会安装在所有版本中而没有问题,但只有在VS2010中才能实际执行。 在其他情况下,它从未实例化或初始化。

没有例外被抛出。 使用/ log标志运行非实验实例不会产生任何其他诊断信息(除了确认它已安装,并且具有比库中已有的版本更新的版本。)

我的阅读和经验表明,这是由于某种缺失的assembly或参考,但我无法证实。 我也不知道如何找出遗漏的东西,特别是没有exception或日志消息。

我已经在这里工作了好几天,现在尝试签署我的程序集,各种vsixmanifest更改,更改所需的框架版本,以及此处发现的许多其他没有成果的事情。

此外,我已尝试从VS Gallery安装旧的已发布版本,但它也无法运行。 但是,我收到了几个人的反馈(错误和感谢),所以我知道它适用于某些人。 我没有收到任何反馈说明“没有任何反应”,但不排除这些事件没有报道。

我不打算插件,但目前发布的版本在这里: http : //visualstudiogallery.msdn.microsoft.com/5cc44f63-4ea8-4c17-8aa4-95037a2d32ef

我目前所处位置的整个源可以在分支“ForStackOverflow”的github上找到。 它和master之间的区别是TraceAppender,我用它来确认VSPackage没有被实例化。 https://github.com/alexcpendleton/Pendletron.Vsix.LocateInTFS/tree/ForStackOverflow

任何建议,经验或任何事情都会有所帮助。 谢谢。

感谢Erti-Chris Eelmaa建议启用FusionLog,我能够弄清楚发生了什么。

Visual Studio没有在已安装的扩展目录中查找我的扩展,而是在GAC和其他地方查找。 奇怪的是,它发现一个包含的组件就好了。

我检查了其他扩展的.vsixmanifest,发现我的项目缺少一个.pkgdef内容节点。 似乎VS2010会对此产生影响,或者出于其他原因碰巧在扩展程序的安装目录中查找程序包程序集,而2012年和2013年则没有。 将此内容节点添加到我的.vsixmanifest允许Visual Studio加载并运行扩展。

 Pendletron.Vsix.LocateInTFS.pkgdef