【问题标题】:ClickOnce, VSTO, or simple auto update for an COM DLL used by OutlookClickOnce、VSTO 或 Outlook 使用的 COM DLL 的简单自动更新
【发布时间】:2010-10-06 19:55:36
【问题描述】:

我有一个用 C# 编写的 COM 组件,它实现了ISmartTagAction,以便为邮件收件人和发件人之类的右键菜单添加操作。

它只是一个 .NET 类库,通过 COM 互操作公开一些类。目前,我使用 Visual Studio 安装项目部署它。该安装程序只是为 COM 注册 DLL 并添加一个额外的额外注册表项来告诉 Outlook 新的智能标记类。

这工作正常,但我最近做了两个不相关的项目,在一个案例中通过单击部署,在另一个案例中作为 VSTO Outlook 插件部署,这对最终用户来说是一个更好的体验,主要是因为自动- 更新 clickonce 的功能。

我进行了一些调查,但我没有找到任何通过单击一次来分发此 COM dll 的方法,因为似乎没有办法让单击一次注册 DLL。它是否正确?有什么办法可以让这个工作吗?

我的另一个想法是创建一个 Outlook 插件项目,并以某种方式将这些类放入该项目并使用 VSTO 发布功能将其推出。不过,我不知道有什么方法可以即时注册智能标签。

任何人都可以想出一种方法来完成这项工作吗?大多数情况下,我正在寻找自动更新功能,以便非技术人员在可用时轻松获取更新。

【问题讨论】:

    标签: c# outlook clickonce vsto


    【解决方案1】:

    您是对的 - ClickOnce 无法注册 dll。它只能在客户端和服务器之间同步文件。好消息是它可以同步任何类型的文件,而不仅仅是 .Net 程序集。因此,您可以通过将程序集添加到 ClickOnce 安装来轻松地将程序集提供给客户端。

    从那里开始,任何其他安装步骤都必须在您自己的代码中完成。您可以将文件复制到一个逻辑位置,使用DllRegisterServer 注册它,然后添加额外的注册表项。只要用户具有执行所有这些操作的安全权限,这应该可以工作。

    我假设您的 COM dll 经常更改,因为您对 ClickOnce 的自动更新功能感兴趣。如果不是这种情况,而且只是您的 VSTO 应用程序的 .Net 部分经常更改,您可以尝试 Visual Studio 可以为您生成的引导程序。我不喜欢这种方法有很多原因,所以除非你感兴趣,否则我会省略细节。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多