【问题标题】:.net (winforms, not asp) multi-server deployment.net(winforms,不是 asp)多服务器部署
【发布时间】:2010-05-25 20:47:11
【问题描述】:

我有一个小型 .NET WinForms 应用程序和几个 linux 服务器,DEV 和 CL1,CL2..CLN(DEV 是开发服务器,CL* 是属于我们客户的服务器,它们位于专用网络中,它是生产服务器)

我想要一个更新机制,以便
(1) 我开发了一个新版本并将其发布到 DEV
(2) DEV-server 的用户从 DEV 安装最新版本
(3) CL2的用户(client2的员工)直接从CL-2安装稳定版
(4) 应用程序使用安装它的服务器检查更新(因此,如果它是从 CL-2 安装的,它应该检查 CL-2 是否有更新)
(5) 如果我想要,我应该能够将更新传播到选定的 CL 服务器(仅使用文件复制和可能的 sed;不重新发布),如果我不这样做(如果我不这样做,那 CL 服务器将有一个旧的版本,直到我手动更新它)

我尝试使用 clickonce,但看起来它只满足前两个要求。

我该怎么办?

【问题讨论】:

    标签: c# deployment clickonce auto-update


    【解决方案1】:

    老实说,ClickOnce 应该处理 1-4。所需要的只是对于您要部署/更新的每个站点,您需要它有自己的发布,在查看您的规范之后这样做并没有错。

    为了使 5. 适用,您可以做的是创建一个自动流程来重新发布文件。这可以执行发布,然后上传到正确的服务器。

    请记住,ClickOnce 需要每个版本都有一个新的清单,而新版本需要发布,所以我不确定您是否会通过简单的文件替换获得 5. 左右。

    【讨论】:

      【解决方案2】:

      凯尔是对的。但是对于第 5 点,你只需要复制部署,然后使用 mage 修改安装 URL 并将其指向新服务器,然后重新签署清单。

      【讨论】:

      • 增加版本不需要重新发布吗?
      • 您可以使用 MageUI 修改版本号并重新签署两个清单,将整个 shebang 复制到网络服务器,瞧,您有了一个新版本。
      • 不错的一个!感谢您提供的信息,非常有趣。
      【解决方案3】:

      我支持我们部署到 DEV、QA、PROD 服务器的应用。我处理这个的方式是 我创建了一个 cmd 文件,其中包含对 MSBUILD 的命令行调用。它使用适当的 URL 和开关为每个服务器构建一次应用程序。我给我的 DEV 和 QA 构建了一个不同的 AssemblyName,这样我就可以并排运行所有 3 个环境。这样我的构建过程是自动化的,我根本不需要发布。

      这是一篇描述您可以使用的参数的文章。 http://msdn2.microsoft.com/en-us/library/ms165431(VS.80).aspx

      @凯尔, 对于上述解决方案,不同版本是否可以并行运行,或者您是否收到指示应用程序已安装的错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-06
        • 2022-12-03
        相关资源
        最近更新 更多