【问题标题】:auto upgrade for dissimilar products in a single click一键自动升级不同产品
【发布时间】:2011-07-06 11:19:53
【问题描述】:

我有四种不同的产品。它们是:

  1. Outlook 附加产品
  2. 系统托盘产品
  3. 标准 EXE 产品
  4. IE 附加产品

这些产品是用 C# .NET 开发的。这些产品作为单一产品提供给客户。我想一键自动升级所有这些产品。 (即所有产品必须一键升级到新版本)。升级必须是强制更新(即在客户获得升级之前不允许客户运行产品)。

谁能指导我解决这个问题?

【问题讨论】:

  • 请提醒我不要购买你们的产品。
  • 您使用什么安装包(例如 Visual Studio 安装项目、ClickOnce、WIX、第 3 方 MSI 打包程序...)?
  • @ewall: 我正在使用 Visual Studio 安装项目
  • @Jonathan Leffler:你为什么这么说,你是什么意思
  • 我不介意被建议升级;我不介意不允许使用我的软件,因为我还没有升级。

标签: c# deployment setup-deployment


【解决方案1】:
  1. 将所有代码 - 表单和所有 - 放入一个或多个 dll。
  2. 在启动时 - 或者当您准备迎接挑战时 - exe 将根据 Web 服务调用中的最后一个 UpdateID / dll 版本检查这些 dll 的更新。
  3. 如果有更新版本,请下载并覆盖旧 dll。
  4. 通过反射动态加载和使用可更新的 dll。
  5. 考虑使用互斥锁以避免重复更新工作。在 UpdateID 之后命名互斥锁。

这可以被巧妙地允许在飞行中更新。

【讨论】:

  • 只是补充一点:代码不必位于单独的 DLL 中。例如,我在 Visual Studio 中的 1 个 Solution 下有 6 个 Projects。当我构建我的应用程序时,所有 6 个Projects 都被编译(它们还共享许多相同的类文件以使Projects 都可以正常工作)。这将生成一个安装在用户 PC 上的可执行文件。
【解决方案2】:

ClickOnce怎么样

【讨论】:

    猜你喜欢
    • 2013-02-03
    • 1970-01-01
    • 2018-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-15
    • 1970-01-01
    相关资源
    最近更新 更多