我正在编写一个针对 VS2010、VS2012 和 VS2013 的 Visual Studio 扩展。它在每个实验实例中运行并成功初始化,没有任何问题。当我安装构建生成的 VSIX 时,它在所有版本中安装都没有问题,但只有在 VS2010 中它才真正执行。在其他情况下,它从未被实例化或初始化。
没有抛出任何异常。使用 /log 标志运行非实验实例不会产生任何其他诊断信息(除了确认它已安装,并且具有比库中已有的对应版本更新的版本。)
我的阅读和经验表明这是由于某种缺少组件或参考造成的,但我无法确认这一点。我也不知如何找出缺少的内容,尤其是在没有异常或日志消息的情况下。
我已经为此花费了几天的时间,尝试诸如签署我的程序集、各种 vsixmanifest 更改、更改所需的框架版本以及在 SO 上找到的许多其他内容,但尚未取得成果。
此外,我尝试从 VS Gallery 安装已发布的旧版本,但它也无法运行。但是,我收到了几个人的反馈(错误和感谢),所以我知道它对某些人有用。我没有收到任何“没有发生任何事情”的反馈,但不排除这些情况未被报告的事实。
我不打算插入,但当前发布的版本在这里:http://visualstudiogallery.msdn.microsoft.com/5cc44f63-4ea8-4c17-8aa4-95037a2d32ef http://visualstudiogallery.msdn.microsoft.com/5cc44f63-4ea8-4c17-8aa4-95037a2d32ef
我目前所在位置的完整源代码可以在 github 分支“ForStackOverflow”中找到。它和 master 之间的区别是 TraceAppender,我用它来确认 VSPackage 没有被实例化。https://github.com/alexcpendleton/Pendletron.Vsix.LocateInTFS/tree/ForStackOverflow https://github.com/alexcpendleton/Pendletron.Vsix.LocateInTFS/tree/ForStackOverflow
任何建议、经验或任何东西都会有帮助。谢谢。
感谢 Erti-Chris Eelmaa 的建议启用FusionLog我能够弄清楚发生了什么事。
Visual Studio 并未在已安装扩展的目录中查找我的扩展,而是从 GAC 和其他地方查找。奇怪的是,它找到了一个包含的组件,效果很好。
我检查了其他扩展的 .vsixmanifest,发现我的项目缺少 .pkgdef 内容节点。 VS2010 似乎解决了这个问题,或者由于某种其他原因碰巧在扩展的安装目录中查找包程序集,而 2012 和 2013 则没有。将此内容节点添加到我的 .vsixmanifest 允许 Visual Studio 加载并运行扩展。
<Content>
<VsPackage>Pendletron.Vsix.LocateInTFS.pkgdef</VsPackage>
</Content>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)