如何卸载 .vsix Visual Studio 扩展?

88
我目前正在尝试为 Visual Studio Express 2013 安装 XNA 游戏工作室。不过我在实际安装 XNA 框架之前,不小心运行了 .vsix 程序。
在安装完后再次运行 .vsix 后,我收到了一条错误消息,指出该扩展已经被安装了。这并非虚假的信息。
我尝试了很多方法来“删除”空扩展:例如进入 %LocalAppData%\Microsoft\VisualStudio 并尝试查找扩展,但是最终什么都没有找到。
我想知道如何正确卸载和重新安装框架。

2
工具 -> 插件管理器? - safetyOtter
10个回答

172

在菜单中,依次点击:

  • Visual Studio 2017: 工具(Tools) > 扩展和更新(Extensions And Updates)
  • Visual Studio 2019: 扩展(Extensions) > 管理扩展(Manage Extensions)

接下来会弹出一个新窗口,然后在左侧面板中,点击已安装旁边的箭头以将其展开,并选择菜单项全部(All).

现在您只需在中间面板中导航到已安装的扩展程序,选择它并点击卸载(Uninstall)即可。


3
非常感谢您的回答!我刚开始学习使用VS,对它的了解还不是很全面,所以非常感谢您的帮助:) - user3147186
1
如何使用PowerShell编程方式卸载程序? - Kiquenet
28
如果插件启动时出现错误,那么它将无法正常卸载或移除。 - Kraang Prime
我在使用旧版本的NVDA nsight扩展时遇到了问题,因为这是ml.net推荐的版本。对我来说,解决方案是安装当前版本,该版本不使用已弃用的API。此时,错误已经消失,如果您愿意,可以从VS中卸载它。对我来说,这比追踪扩展ID要容易得多。 - Slayer6

77

为了进一步解答@Brukvoyed的回答,您可以使用VSIXInstaller.exe实用程序卸载vsix,但需要使用vsixid。要获取.vsix文件的vsixid,请复制该文件并将其重命名为.zip。然后,您可以打开它并找到一个在其中的extension.vsixmanifest文件。这是一个XML文件,如果你打开它,你会看到一个<Identity Id="guid"... />节点。其中的guid就是您在VSIXInstaller.exe命令中使用的vsixid,像这样:

vsixinstaller /u:12345678-1234-5678-1234-123456780000

3
这对我很有帮助 - 除此之外,我发现我需要的标识符 ID 在<Identifier Id="xxxx">中找到,而不是在 Identity 中。 - Jon H
@JonH 这很奇怪。我刚刚检查了另一个VSIX,它使用<Identity Id="e6e2a48e.... 哦,好吧,很高兴你得到了你需要的东西。 - Donald Byrd
请注意:确保只使用来自 vsixmanifest 文件的 GUID 或包 ID。我使用了这个命令,并(错误地)包含了一个版本号(vsixinstaller /u:PowerShellTools.VS2017,version=3.0.585),结果导致我的 Visual Studio 安装出现问题;现在我无法访问“包和扩展”,Visual Studio 修复也无法解决问题。我可能需要卸载并重新安装。 - CJBS
你可以在你的项目中找到这个ID。打开source.extension.vsixmanifest文件,你需要的值在“Product ID:”字段中。 - Stephen Kellett
2
如果Id不仅仅是GUID,您需要将其用引号括起来:vsixinstaller.exe /admin /uninstall:"D365DeveloperExtensions.Jason Lattimer.ae772bae-97ff-47fa-8741-778a3c776740" - Eric Labashosky
如果你想知道可执行文件在哪里:C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE> - gimlichael

13

如果Visual Studio无法启动或无法显示“扩展和更新”管理窗口,则可以尝试通过命令行卸载扩展。使用标准Visual Studio软件包中的VSIXInstaller.exe实用程序。


6
删除 C:\Users<your user>\AppData\Local\Microsoft\VisualStudio\15.0_[一些数字]\privateregistry.bin 可能有所帮助。另请参阅 https://developercommunity.visualstudio.com/content/problem/31263/vs2017-fails-to-start-with-unknown-error.html。 - Stefan
3
使用cmd命令行工具安装VSIXInstaller的示例: 打开cmd,切换到VS安装目录下的VSIXInstaller.exe所在路径,例如: C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE> 输入以下命令进行插件卸载: VSIXInstaller.exe /uninstall:PowerCommands.3ecdd89b-f985-483d-8c94-be37de4dc083 插件ID可以在Visual Studio Marketplace网站的资源栏中找到。 - Chashitsu

11

对于VS2015,请检查你的

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions

文件夹。为了删除我不需要的扩展名,我不得不手动删除相当多的内容。每个文件夹里面都有一个名为:

extension.vsixmanifest

你可以查看该文件中的DisplayName/Description以查看扩展名。


当安装或卸载失败时,这是正确的答案。 - Franck

5

想要查看 .vsix 扩展的详细信息,可以按照以下步骤进行:

  1. 打开 Visual Studio 命令提示符
  2. 运行一个无效的卸载命令

    vsixinstaller /uninstall:abc123

  3. 在错误对话框中,点击日志的链接。

  4. 日志文件包含了很多详细信息,其中包括所有已安装扩展和它们的位置。
  5. 在特别感兴趣的扩展位置,可以使用以下命令列出它们的描述:
    cd /d <interesting path>
    findstr /is Description extension.vsixmanifest
  1. 通过描述找到所需的扩展后,打开其extension.vsixmanifest文件以获取<Identity> GUID。然后卸载:

    vsixinstaller /uninstall:801375CB-9A15-A641-CB2D-50D43AAD43DC

(说明:该段内容介绍了如何通过查找GUID来卸载一个扩展程序)

2

对于Visual Studio 2019:

在Visual Studio菜单中,选择Extensions > Manage Extensions

然后从弹出窗口的侧面板中选择Installed,这将显示所有已安装的VS扩展。

enter image description here


如果您卸载扩展时,vsix安装程序运行并表示已卸载该扩展,但当您打开VS2019并检查扩展时,它仍然存在怎么办? - Jim

1

我遇到了一个LiveShare.UI(beta版)的问题,这导致我的Visual Studio界面崩溃,完全无法使用菜单或进行任何操作。我原本打算使用Visual Studio安装程序来修复Visual Studio,但那可能会删除我所有的扩展程序。因此,我选择了“更新Visual Studio”选项,现在一切都恢复正常了。开心的日子又来了。


我在 Visual Studio 中收到的错误信息是“ShareWorkspaceUIPackage 没有正确加载”,尽管我没有意识到它是由 LiveShare 导致的。这个方法解决了问题。 - Nikolaj Dam Larsen

1
我曾经遇到同样的问题,解决方法是不要打开解决方案。只需打开Visual Studio,然后导航到“工具”->“扩展和更新”。现在Visual Studio扩展终于显示了。当我打开解决方案并导航到“工具”->“扩展和更新”时,它不会显示Visual Studio扩展。

希望这能节省别人的时间...


0

对于任何有兴趣的人,以下是使用DOS批处理脚本卸载多个扩展的说明。

  • 我需要卸载的原因: 在我的VS2022安装中,我在我的计算机系统文件损坏之前一天安装了超过20个扩展,并且我不得不将Windows 11恢复到还原点。 这导致我安装的所有扩展的DLL被删除。

要卸载多个扩展,我查看了以下文件夹:

%USERPROFILE%\AppData\Local\Microsoft\VisualStudio**[!17.0_60f34b7d!]**\Extensions

请确保将上面的路径更改为您的用户名和VisualStudio的子文件夹

我按“修改日期”对该路径中列出的文件夹进行了排序,这让我可以识别特定日期安装的所有扩展名。 然后,我进入每个文件夹,并打开extension.vsixmanifest。 该文件包含卸载命令所需的vsixID。

<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011">
  <Metadata>
    <Identity Id="65dd734b-180a-4c67-b245-56de889637e1" Version="2022.2" Language="en-US" Publisher="Mike Ward - Ann Arbor" />

我从每个extension.vsixmanifest文件中复制了Identity Id,并将它们全部粘贴到一个文本文件中。

7671c1a9-8269-44eb-9b9a-bd8bec0af629
PREVIEW-INI.EC198F83-B43E-48F7-A346-3BA545D132DE
RenameVariableAfterType.09d7f563-5d3d-405b-8232-ee07e19139b9
b4558cd7-da41-47e7-8969-46c357a1b8b3
DocumentationAssistant.64c7f98c-bf02-4a60-9f8e-9ca5fd269fd7

然后使用Notepad++(您也可以使用VS),我按住ALT键并从行的开头向下滚动。 然后我只需粘贴“vsixinstaller /q /uninstall:”。

vsixinstaller /q /uninstall:7671c1a9-8269-44eb-9b9a-bd8bec0af629
vsixinstaller /q /uninstall:PREVIEW-INI.EC198F83-B43E-48F7-A346-3BA545D132DE
vsixinstaller /q /uninstall:RenameVariableAfterType.09d7f563-5d3d-405b-8232-ee07e19139b9
vsixinstaller /q /uninstall:b4558cd7-da41-47e7-8969-46c357a1b8b3
vsixinstaller /q /uninstall:DocumentationAssistant.64c7f98c-bf02-4a60-9f8e-9ca5fd269fd7

之后,我将文本文件保存为批处理文件(vsixUninstall.bat),并从包含vsixinstaller.exe的文件夹中执行脚本。

C:\Program Files\Microsoft Visual Studio\2022\Preview\Common7\IDE>C:\Temp\vsixUninstall.bat

使用我的脚本时,我使用/q选项来避免在每次卸载后得到提示。它运行了所有的卸载而没有任何用户输入。但是,如果有一个扩展程序没有被卸载,最好删除/q选项以获取更多关于失败的详细信息。
希望这可以帮助您。😏

0

我在VS2017上遇到了两个问题:

找不到扩展程序

如果您是通过 新建项目... > 在线 分组 / 选项卡安装的,或者直接下载并安装:

  1. 工具 > 扩展和更新 窗口中,在左侧菜单栏单击 在线 选项卡;
  2. 然后单击右上角的搜索栏(或按 Ctrl+E);
  3. 输入扩展名的部分名称,它现在应该显示在窗口的中央位置;
  4. 单击 卸载 按钮。

卸载禁用 按钮没有出现

在找到扩展之后,如果扩展程序的右上角有一个 绿色勾号:这意味着您仍在使用该扩展程序的一个解决方案中

因此,您需要删除使用该扩展程序的主解决方案中的 "内部" 解决方案:

  1. 手动备份您想要保留的任何文件;
  2. Solution ExplorerCtrl+Alt+L)中点击“内部”解决方案/文件夹(通常与解决方案本身具有相同的名称)。
  3. 按下 Del 然后点击 OK;
  4. 执行上述步骤(通过 工具 > 扩展和更新窗口)。

我所称之为“内部”解决方案的是解决方案中的一个项目。 - CPHPython

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接