11

我必须启用 MSBuild 项目构建输出详细程度的诊断模式才能看到:

1>Done executing task "EnableExtension" -- FAILED. (TaskId:81)
1>Done building target "DeployVsixExtensionFiles" in project "myextension.csproj" -- FAILED.: (TargetId:93)
...
1>Build FAILED.
1>
1>Time Elapsed 00:00:01.27
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========

我的问题是我无法调试我正在处理的 Visual Studio 扩展包,因为构建输出显示某些东西失败了。已创建包含所有内容(包括 vsix 包)的 obj 和 bin 文件夹。我真的不知道我改变了什么特别之处,因为几个小时前一切都很好。

我如何调查出了什么问题?

顺便说一句:我正在使用 VS 2012 Premium Update 1

编辑:

我记得我做过什么。在调试模式下,我进入了工具 -> 扩展和更新,并卸载了我当前调试的扩展(在该操作之后没有重新启动 VS)。进一步尝试调试(关闭 VS 实验实例后按 F5)会导致这种神秘的构建行为。

4

2 回答 2

26

一段时间后我想出的当前解决方法是更改​​ source.extension.vsixmanifest文件中扩展包的显示名称:

  <Metadata>
    ...
    <DisplayName>Change this name to sth else and press F5</DisplayName>
    ...
  </Metadata>

无需更改任何其他内容(不幸的是,恢复为旧名称仍会引发此错误,但至少可以继续开发和调试)。

更新:

我检查了 Windows 注册表中是否存在此类有问题的名称,并找到了以下PendingDeletions键:

HKEY_USERS\S-1-5-21-1832937852-2116575123-337272265-599953\Software\Microsoft\VisualStudio\11.0Exp\ExtensionManager\PendingDeletions

在这个键下有指向我之前卸载的扩展的值(在调试模式下):

C:\USERS\G_159\APPDATA\LOCAL\MICROSOFT\VISUALSTUDIO\11.0EXP\EXTENSIONS\JAROSLAW WALISZKO\MYEXTENSION\1.0\

删除此条目可以解决这种情况。

于 2013-04-01T17:33:20.250 回答
1

大卫伊卡尔迪评论道:

另一种解决方案是手动打开 Visual Studio 实验实例。启动它会导致所有待处理的扩展被自动删除。

要启动实验实例,请在开发人员命令提示符下运行以下命令:

devenv.exe /RootSuffix Exp

更新:我很笨 - 安装 VS 2013 SDK 后,在开始菜单的 Visual Studio 2013 文件夹中有一个启动实验实例的快捷方式。

于 2014-11-17T16:49:33.973 回答