如何重新添加已删除的 VSTO 加载项

How to re-add a deleted VSTO Add-In

我在一台机器上的 Word VSTO 加载项遇到了一个奇怪的问题,其中 运行 宁 visual studio 项目打开了 word 但没有尝试启动加载项我看得出来。

我走到这一步是因为我不小心在“管理 COM 加载项”页面上为加载项单击了“删除”,而不是在失败后重新启用它。

我想知道如何重新启用已删除的加载项 - 我在想也许某处有一个注册表项我需要删除。

我试过安装和卸载已发布的版本,看看是否能唤醒任何东西,我试过更改 VS 项目的路径,以防万一(以及各种重启、清理,重建,本地删除和从 git 等重新克隆)但我找不到让它再次工作的方法。在另一台机器上,从 Git 克隆加载项并在 Visual Studio 中打开它,一切正常。

我尝试通过 COM 加载项上的 select DLL(或 select .)对话框重新添加,但我 select 似乎是一个有效的加载项。

任何帮助弄清楚如何恢复工作开发环境的帮助都将不胜感激。

编辑 下面有很多事情要做 - 所以我想我应该澄清一下,成功的解决方案是在线修复 Office

当事情没有按预期工作时,我不得不采取的最极端的步骤是清除注册表或文件系统中的 VSTA 缓存。请注意,我使用的是附加到文档的 template-based customizations,而不是始终存在的 add-ins,因此这可能不适用于您。或者也许是,我不知道。

注册表

在 HKCU 下为您的 add-in 查找条目:\Software\Microsoft\VSTA\Solutions。我为此使用 PowerShell,示例命令链如下所示:

gci "HKCU:\Software\Microsoft\VSTA\Solutions"


    Hive: HKEY_CURRENT_USER\Software\Microsoft\VSTA\Solutions


Name                           Property                                                                                                                                                                                     
----                           --------                                                                                                                                                                                     
1234abcd-1234-abcd-1234-abcd12 Url                 : file:///Z:/path/to/your/addin.vsto                                                              
34abcd                         SubscriptionID      : addin.vsto, Culture=neutral, PublicKeyToken=<removed>, processorArchitecture=msil                                                                        
                               ApplicationID       : file:///Z:/path/to/your/addin.vsto#addin.vsto, Version=<removed>, Culture=neutral, 
                                                     PublicKeyToken=<removed>, processorArchitecture=msil/addin.dll, Version=<removed>, Culture=neutral, PublicKeyToken=<removed>,                     
                               processorArchitecture=msil, type=win32                                                                                                                                                       
                               ProductName         : addin                                                                                                                                                           
                               LastCheckedTime     : {4, 201, 185, 1...}                                                                                                                                                    
                               UpdateEnabled       : 1                                                                                                                                                                      
                               UpdateInterval      : 1                                                                                                                                                                      
                               UpdateIntervalUnits : days            

remove-item "HKCU:\Software\Microsoft\VSTA\Solutions34abcd-1234-abcd-1234-abcd1234abcd"

文件系统

我的自定义项(见开头的注释)安装在 %localappdata%\Apps.0 并且在极少数情况下我需要手动删除它们。清除这个不太简单,但通常会有一个匿名文件夹,如 ABCDEFG0.QWE。我只是删除了它,连同另一半,我从来没有 运行 解决过我无法解决的问题。仅供参考,如果您有多个部署,这可能会卸载所有这些部署。我不经常这样做,所以我不是 100% 熟悉这个区域的工作原理,但我从来没有因为这样做而变得更糟。

我不知道这与 application-level add-ins 有何不同,如果有的话,可以安装到 Program Files。

编辑:添加一些相关链接。

How do I completely uninstall a ClickOnce application from my computer?

Clear the .NET-downloaded application cache without Mage?

我认为您需要更改 VSTO 的版本 add-in 才能对其进行更新或 re-install。一旦 add-in 版本被禁用,这是永久性的。

有关详细信息,请参阅 Uninstall MS Word Add-in。让我知道这是否有效。

注册表中的 LoadBehaviour 是什么?应该是 3...

要找出答案,请查看

  • 32 位字 => Root\Software\Microsoft\Office\Word\Addins\add-in ID
  • 64 位字 => Root\Software\Wow6432Node\Microsoft\Office\Word\Addins\add-in ID

其中 Root 是 HKEY_CURRENT_USERHKEY_LOCAL_MACHINE,取决于是否为当前用户安装了插件或者每个人。

如果 LoadBehaviour 的值不是 3,则将其更改为 3 并重新启动 Word。

这是关于它的 Microsoft 文档:Registry entries for VSTO Add-ins

如果还是不行,试试re-enable因为它可能硬禁用:

  • Manage 框中,将 COM Add-ins 更改为 Disabled Add-ins,然后单击 开始
  • Select add-in 并单击 启用 。单击关闭。现在可以再次加载 add-in...
  • 返回 Manage 框,将 Disabled Add-ins 更改为 COM Add-ins ,然后单击 开始
  • 选中禁用 add-in 旁边的 复选框 。单击确定

这是关于它的 Microsoft 文档:How to: Re-enable a VSTO Add-in that has been disabled

此外,如果您还没有这样做,值得将 VSTO_SUPPRESSDISPLAYALERTS 设置为 0,如本页所述:How do I enable VSTO error / display alerts?

如果上述 none 有帮助,那么值得对 Office 进行 在线修复 来自 添加或删除程序.