【发布时间】:2014-02-18 16:09:23
【问题描述】:
我的扩展在 VS2010 和 VS2012 上运行良好。但不是在 VS2013 中?
现在,如果我使用 VS2013 安装 VSIX,扩展将被安装并且在工具/扩展管理器中可见。 在 Visual Studio 的 About-Dialog 中,没有 Extension 的条目。在 VS2010 和 VS2012 中是这样的。
是否要安装接缝但未加载。 没有可用的扩展菜单项或命令。
但是当我安装 Visual Studio SDK 2013 时。然后加载扩展并且工作正常。 我不想强迫项目中的人只为扩展安装 SDK。
菜单和命令是通过 VSCT 文件创建的。包含带有 Extern-Tag 的内容 - 这些可能会造成麻烦吗?
<!--This is the file that defines the IDs for all the commands exposed by VisualStudio. -->
<Extern href="stdidcmd.h"/>
<!--This header contains the command ids for the menus provided by the shell. -->
<Extern href="vsshlids.h"/>
<Extern href="vsdbgcmd.h" />
<Extern href="vsdebugguids.h" />
或者也许应该嵌入一些程序集/互操作类型?
【问题讨论】:
-
最可能的原因是您引用了一些没有 SDK 时不存在的 DLL。尝试附加调试器或 fuslogvw,在没有 SDK 的情况下启动 VS 2013 并查看弹出的错误
-
好建议,谢谢。但现在它变得越来越陌生:当我卸载 SDK 时,扩展仍然有效。当我重新安装扩展同样的问题。接缝不是 SDK 的问题...也许还有另一个问题(在注册表或清单中?)
-
它只是菜单条目的接缝 - 当我删除 %LOCALAPPDATA%\Microsoft\VisualStudio\12.0\Extensions 中的缓存时,下次启动的菜单也消失了。但是有些命令仍然有效?! ://
-
一些命令存储在注册表的用户配置部分。要彻底破坏扩展程序,您需要同时删除两者
-
调试器或 fuslogvw 告诉你什么?我的直觉告诉我你依赖于 Shell.10.0.dll 但这不是绑定的,安装 SDK 就是提供它。但这是一个真正的远景。
标签: visual-studio-2013 visual-studio-extensions vsix visual-studio-sdk vsct