2016-02-10 18 views
0

我正在一个vs 2013 C#扩展项目。使用Windows &和.NET 4.5安装时,vsix扩展工作正常。但是,一段时间后发生了一些事情,只是在添加了一些更改之后,我不能再在调试器中启动扩展。在Visual Studio中选择扩展项目,然后选择debug-> start new instance会导致VS在编译步骤中运行,然后启动带有扩展名的vs的新版本。但是,在VS黑色飞溅矩形出现后不久,出现一个弹出窗口,提示“操作无法完成 - 不支持此类接口”。调试器已启动并显示正在“进度窗口”中加载的模块。最后加载的模块是ENVDTE80。Windows 7 Visual Studio 2013启动deveoped扩展获取“操作无法完成 - 没有这样的接口支持”

运行带有/日志devenv的,虽然“不能......操作”正显示该消息复制日志文件显示的最后一项是

<entry> <record>1294</record> <time>2016/02/09 16:53:22.122</time> <type>Information</type> <source>VisualStudio</source> <description>Leaving function VBDispatch::GetTypeLib</description> <guid>{80CC9F66-E7D8-4DDD-85B6-D9E6CD0E93E2}</guid> 

</entry> </activity> 

引用的GUID整个多次出现activity.log。

我看了devenv/LOG日志中的奇怪的小错误消息。我已经从Visual Studio中卸载了VSIX应用程序,然后尝试调试>但在那里没有喜悦。我卸载了视觉工作室并重新安装。我已经修复了.NET安装。我修复了SDK。没有任何工作。还有其他一些更早,更简单的扩展和测试版本可以很好地进行调试。我倾向于认为有些地方的注册表项会找到不运行此代码的原因。

从devenv的活动日志我看到这些错误消息:

<description>PkgDef configuration error. ApplicationExtensionsFolder omitted from PkgDefSearchPath</description> 

The clients rights token could not be found at .... 

Extension will not be loaded because an extension with the same ID &apos;Microsoft.Windows.DevelopmentKit.Desktop&apos; is already loaded at > C:\PROGRAM FILES (X86)\COMMON FILES\MICROSOFT\EXTENSIONMANAGER\EXTENSIONS\MICROSOFT\WINDOWS KITS\8.0\DESKTOP SDK\...</description> 

我也已经运行将procmon和捕获之间的调试 - 事件>启动单独的实例和错误信息的呈现。两个pid被追踪:一个用于原始devenv,一个用于被调试的扩展。调试扩展的所有注册表事务分为:成功,未找到名称,未发现更多名称或缓冲溢出。没有明显的(对我)单一的错误条件。

与正在调试的扩展的最后一个pid条目相关联的启动devenv的pid具有多个与HKLM \ SOFTWARE \ Microsoft \ SQMClient \ Windows \ CommonDatapoints关联的条目ACCESS DENIED。

将devenv.log与procmon进行比较,很显然,在ENVDTE80的devenv.log中的最后一项之后,处理将继续进行。我似乎没有得到任何关联。

我已经使用了很多。

重新注册DLL的常见建议在这里尚未证明是有用的(尽管它似乎已经修复了IE问题,这似乎是一个有吸引力的方法)。

也un /重新安装.net 3.5(.1)没有效果。运行sfc/scannow没有任何效果。运行NetFxRepairTool不起作用。已经重建了VS扩展实验配置单元(12.0-Exp),没有任何效果。已取消/重新安装vs2013和SDK无效已卸载VS和配对SDK的其他版本无效

回答

0

我有更多时间来看看这个。我卸载vs sdk和vs 2013 pro并重新启动。在重新安装2013 pro和vs我下载的dotnetframework分析工具运行它。我修好了网点4.5.1。然后分析说,要修复我所做的网点4.6.1。重新启动。试图在调试中运行vs扩展,并得到了与Ext配置单元锁定文件相关的不同错误。这是以前未知接口消息的改进。在启用devenv日志文件的情况下再次运行调试。 devenv日志中引用的锁定文件在以/ Exp目录名称结尾的路径和/....lock文件名之间有一个“%& 00A%& 00D”符号。编辑配置文件以从/ RootSuffix Exp条目的末尾删除cr/lf,然后调试工作。

相关问题