从 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 访问文件时出错”
在 Windows 10 中安装的 ubuntu 中运行 sudo 命令时出错?