【问题标题】:How to publish a beta version of a ClickOnce application?如何发布 ClickOnce 应用程序的测试版?
【发布时间】:2009-04-15 12:19:32
【问题描述】:

我想在每次构建应用程序时发布一个测试版,这样用户就可以在正式发布之前访问“测试版”并测试功能。

我尝试通过在将 ProductName 运行到 [product]-beta 时覆盖它来做到这一点。问题是发布过程仍然会创建一个 [product].application 并且 ClickOnce 魔法似乎不知道一个 URL 上的 [product].application 和另一个 URL 上的 [product].application 之间的区别。

知道如何解决这个问题吗?

【问题讨论】:

    标签: c# clickonce


    【解决方案1】:

    我遇到了一个非常相似的问题,这是我想出的解决方案。

    我将所有的 GUI 表单都放入了一个 DLL 中,包括主启动表单。然后我创建了 2 个引用我的 GUI dll 的 EXE 项目。一个名称为 Product,另一个名称为 ProductBeta。
    EXE 中的代码在两者之间几乎相同。即Application.Run(new MainForm())。

    然后我将它们设置为发布到同一共享上的子目录。

    这很烦人并且有一点开销,但结果非常好。

    【讨论】:

      【解决方案2】:

      正如您所发现的,仅修改产品名称是不够的。您需要修改程序集名称。

      来自http://weblogs.asp.net/sweinstein/archive/2008/08/24/top-5-secrets-of-net-desktop-deployment-wizards.aspx的详细信息

      最重要的是拥有 支持多种环境 - 这不是内置的,如果你 尝试部署两个不同的 ClickOnce 使用相同的构建 部署名称到不同的站点, 最新版本将优先 并有效地覆盖现有的 部署在桌面上。

      对此的修复是相对的 直截了当 - 您需要提供 每个部署名称不同 建造。像这样-

      <MSBuild 
         Projects="ClickOnce.csproj"
         Targets="Publish"
         Properties="
                  MinimumRequiredVersion=$(MinimumRequiredVersion);
                  ApplicationVersion=$(ApplicationVersion);
                  ApplicationRevision=$(ApplicationRevision);
                  CodeBranch=$(CodeBranch);
                  DeployEnv=$(DeployEnv)
                  AssemblyName=ClickOnce.$(DeployEnv);
                  PublishUrl=$(PublishUrl);
                  ProductName=ClickOnce $(CodeBranch) $(DeployEnv)" />
      

      这种方法的一个限制是 该项目引用将不再 工作。使用基于文件的程序集引用, 会好的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-05
        • 1970-01-01
        相关资源
        最近更新 更多