从 Windows 10 运行时,ClickOnce 不会取消注册/重新注册 VSTO 解决方案

Posted

技术标签:

【中文标题】从 Windows 10 运行时,ClickOnce 不会取消注册/重新注册 VSTO 解决方案【英文标题】:ClickOnce does not unregister/re-register VSTO solutions when running from Windows 10 【发布时间】:2019-10-23 18:33:10 【问题描述】:

为 Word 女士发布 HelloWorld 插件。通过 ClickOnce 签名和发布,安装文件夹设置为在线目录。

遵循的惯例

    运行加载项 setup.exe 以通过 ClickOnce 安装。 断言插件已在File / Options / Add-ins注册。关闭 Word。 转到Programs and Features 面板,卸载与插件对应的 ClickOnce 应用程序。 启动 Word 并断言插件已从File / Options / Add-ins注销。 运行加载项 setup.exe 以通过 ClickOnce 安装。 断言插件已在File / Options / Add-ins注册。 选择Manage: COM Add-ins 并按[Go...]。选择插件并点击[删除]。 转到Programs and Features 面板,卸载与插件对应的 ClickOnce 应用程序。 运行加载项 setup.exe 以通过 ClickOnce 安装。 断言插件已在File / Options / Add-ins注册

Windows 7 + Office 365 下的结果

流程有效,所有步骤都正确。

Windows 10 + Office 365 下的结果

流程不起作用。

第 4 步:卸载 ClickOnce 应用程序不会影响 Word 中的加载项注册。 第 10 步:手动取消注册加载项会导致 ClickOnce 无法重新注册:它一直提示已安装最新版本的 Office 自定义,这在没有加载项的 Word 中未反映为已注册。

怎么办?

我过去曾举过几面旗帜,但都没有运气。我现在已将问题范围缩小到 Windows 10 和 ClickOnce 的其他不一致行为(第 4 步不起作用)。

问题:

    我们真的是唯一面临这个高度确定性问题的 VSTO 发布者吗? 我们应该称之为错误吗?我们可以在哪里标记它?

这是对以下主题的跟进,我从未得到答案:

Unable to re-register VSTO Add-in after choosing [Remove] from COM Add-ins window

https://social.msdn.microsoft.com/Forums/office/en-US/3151614e-8921-4de0-8b4e-1be65537aa8f/unable-to-reregister-vsto-com-addin-after-choosing-remove-from-list-of-quotaddins?forum=vsto

https://social.msdn.microsoft.com/Forums/vstudio/en-US/976266bc-1ce4-4f1c-88d0-0e4e6fa14510/unable-to-reregister-ms-word-vsto-com-addin-when-deployed-through-clickonce?forum=vsto#976266bc-1ce4-4f1c-88d0-0e4e6fa14510

【问题讨论】:

您是否正在部署到您用来构建它的机器上? 两台机器都安装了 Visual Studio,但我使用机器 A 开发、构建和签署解决方案,而我使用机器 B 安装它,从 Internet 发布的位置,就像任何客户一样. 【参考方案1】:

问题与 Windows 10 没有直接关系,而是Office 版本:商店或桌面。

默认情况下,在 Windows 10 计算机上安装 Office 时,它​​是从 Microsoft Store 安装的。 您可以通过在File / Account 中查看您的应用程序版本来判断安装的版本:在 [About Word] 按钮的右侧,您会找到版本和内部版本号,然后是以下两个选项之一:

点击运行

这意味着您已经安装了 desktop 版本,或者

微软商店

这意味着您已安装了商店版本

在处理注册表项甚至文件时,商店版本会导致许多问题。 此问题已由 Add-in Express Support Service 的 Andrei Smolin 解决。通过在 24 小时内解决我们几个月来遇到的问题,他非常有用和勤奋。值得一提的是,我们还不是事件的客户。

查看他的article 了解更多详情。

接下来呢?

现在的问题是,我们如何向 Microsoft 报告此情况?

【讨论】:

【参考方案2】:

如果您在机器上以调试方式构建了加载项,并且它也是从部署位置安装的,则可能会导致此问题。

    通过任一方式打开“COM 插件”表单

    转到开发人员功能区并单击“COM 插件”按钮

    转到“文件”功能区并单击“选项”按钮。然后在“Add-Ins”下选择“COM Add-ins”并点击“Go…”

    选择加载项名称并单击“删除”按钮

    然后您需要从“程序和功能”中卸载插件

你也可以试试

    在命令窗口输入rundll32 dfshim CleanOnlineAppCache并运行

【讨论】:

感谢 Aduguid,您的步骤 2 和 3 对应于我的步骤 7 和 8。rundll32 dfshim CleanOnlineAppCache 也没有解决问题。 rundll32 dfshim CleanOnlineAppCache 不会引发任何错误 抱歉,我的意思是当您安装 VSTO click-once 加载项时。 没有错误消息,Win7 和 Win10 流程都显示相同的窗口/窗体,除了在 Win10 下,第 5 步的行为就像第 3 步没有完成一样(即 ClickOnce 在绿灯消息中说已安装自定义的最新版本)。与第 9 步相同,其行为就像第 7 步尚未完成一样。 别担心,这是我在 GitHub 中的Excel VSTO projects

以上是关于从 Windows 10 运行时,ClickOnce 不会取消注册/重新注册 VSTO 解决方案的主要内容,如果未能解决你的问题,请参考以下文章

运行PowerShell进程时如何阻止Windows 10机器休眠/休眠?

Windows 10 AppInstaller:“从 Web 访问文件时出错”

从 R 连接到亚马逊红移时出错 - Windows 10

在 Windows 10 中安装的 ubuntu 中运行 sudo 命令时出错?

在 Windows 10 上从 python 运行时 ffmpeg.probe 不起作用

如何从 C# 授予 Windows 10 中 Pcap 库的权限?