【发布时间】:2017-05-29 19:24:29
【问题描述】:
我正在为 Visual Studio 2015 编写一个扩展。除了在实验实例中之外,我有许多我会直接尝试的测试扩展。事实上,其中几个版本足以让我的团队成员尝试,这就是为什么我每次都给他们 vsix 文件并让他们安装它。
问题是我无法卸载这些。我没有做任何奇怪的事情。事实上,其中大部分只是针对几个 t4 模板。当我运行一个实验实例时,我一直看到显示的是旧版本而不是最新版本。
我已经多次重置实验实例:
C:\Program Files (x86)\Microsoft Visual Studio\14.0\VSSDK\VisualStudioIntegration\Tools\Bin>CreateExpInstance /Reset /VSInstance=14.0 /RootSuffix=Exp
但是旧版本还在里面。如果我尝试卸载,它仍然在那里显示为已禁用。如果我关闭实验实例并重新打开它,它又回来了。即使在重置实验实例之后。
所以我尝试进入带有扩展名的文件夹并删除所有包含我测试的文件夹。当我重新打开 Visual Studio 并单击扩展时,它只是给了我一个错误,所以我取消删除了文件夹。
我尝试过使用
C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE>VSIXInstaller /u:
我的测试用钥匙。它说它正在卸载,但它并没有删除给我带来问题的那个。但它确实删除了最新的。
我开始检查注册表,并在我创建的所有测试中找到一个带有“待删除”的部分。但我所做的一切似乎都无法让它真正处理它们。
我通常以管理员身份运行 Visual Studio。我启用了快捷方式上的标志,因为我从事的一些项目需要它,我不想记住使用“运行方式”。但这似乎无关紧要。如果我在没有它的情况下运行,那些“待删除”似乎也不会处理。
我打算再四处寻找,但也许其他人对此有解决方案?
【问题讨论】:
-
您在使用 VSIX 安装程序卸载扩展时是否指明标识符:VSIXInstaller /q /a /u:{VSIXIdentifier}。 stackoverflow.com/questions/25234634/…
-
是的,我指明了标识符。我只是没有在这里复制它。我从字面上说“用钥匙”,它确实删除了最新的。
-
这是 VS2015 中的“正常”行为。只有在下次打开 VS 时才会删除扩展目录。我什至见过根本没有删除目录的情况。这并不意味着扩展程序没有被卸载,因为它是。我相信这就是它让 MS 在 VS 2017 中改变了整个扩展安装/卸载体验的原因。
-
不,我确实关闭了 vs 并重新启动了很多次,但它并没有删除它们。它永远不会删除它们。如果我重置我的实验实例,我已经“删除”的旧扩展在其中处于活动状态。
标签: c# visual-studio-2015 visual-studio-extensions