【问题标题】:How to move a ClickOnce deployment package如何移动 ClickOnce 部署包
【发布时间】:2010-09-15 13:01:44
【问题描述】:

我在网络驱动器上的发布文件夹中有一组 ClickOnce 包,需要将它们全部移动到另一台服务器(我们的 DR 机器)。

复制/粘贴整个目录并在新机器上运行设置后,我收到一条错误消息,指出它找不到旧路径:

激活 ...MyClickOnceApp.application 结果 例外。失败后 检测到消息:

+ 下载文件://oldMachine/c$/MyClickOnceApp.application 没有成功。

+ 找不到路径“\\oldMachine\c$\MyClickOnceApp.application”的一部分。

一旦我将安装URL 更改为指向我的新机器,我会收到另一个错误:

清单 XML 签名无效。

+ 对象的数字签名未验证。

我尝试使用MageUI.exe 来修改部署 URL,但它要求提供我没有的证书。

我做错了什么以及如何成功移动已发布的 ClickOnce 包?

【问题讨论】:

标签: c# clickonce manifest


【解决方案1】:

我找到了解决办法:

首先,使用 MageUI,我更改了“部署选项”下的“开始位置”。保存时,它提示我使用我在那里创建的密钥进行签名。然后我运行了setup.exe 文件,它没有失败。

在检查了哪些文件已更改后,我意识到它只是一个文件:应用程序清单文件 (myAppName.application)。文件中唯一改变的是 deployment provider签名(这是我在MageUI)。

当我意识到这是怎么做的时候,我使用了 MageUI 的命令行版本,名为 Mage.exe,它是 SDK 附带的。

下面是我创建的批处理文件,用于在命令行上执行所有这些操作:

REM 设置环境
调用“C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat”

REM 更新部署提供程序 URL
mage -Update %1.application -pu %2

REM 使用我们的密钥签署清单
mage -Sign %1.application -CertFile C:\AppKey.pfx -Password myPw

我现在可以使用它以快速简单的方式运行我所有已发布的应用程序。我希望这会有所帮助。

【讨论】:

  • 什么是 %1 和 %2 ?
  • 我有 CER(对于 *.mydomain.com)。适用于生成 pfx 并签署清单?
【解决方案2】:

无需过多详细说明,这应该可以让您继续前进。

出于安全原因,ClickOnce 清单必须使用证书进行签名。您可以购买代码签名证书或生成测试证书。测试证书的主要缺点是您的应用程序发布者将显示为“未知”而不是您公司的名称。

在 Visual Studio 中,打开项目的属性并转到“签名”选项卡,选择“签署 ClickOnce 清单”和“创建测试证书”。接下来,单击“更多详细信息”以弹出一个对话框,然后单击“安装证书”。这将引导您通过一个向导在您的商店中获取您的测试证书。确保将其放在“个人”商店中。

现在您可以使用 MageUI 来编辑您的清单。任何时候保存它都会提示您签署清单,但您现在应该能够选择刚刚存储的测试证书。始终在编辑/签署部署清单之前编辑/签署应用程序清单。这很令人困惑,因为应用程序清单不是带有 .application 扩展名的文件。

祝你好运!

【讨论】:

    【解决方案3】:

    我希望必须执行以下操作:

    • 将当前文件夹内容复制到新位置
    • 对于每个应用程序:-
      • 将“安装文件夹”更改为新位置
      • 作为新版本发布
      • 将“发布文件夹”更改为新位置
      • 作为新版本发布

    从新文件夹运行的新设置应该可以工作,现有的应该更新以找到正确的位置。

    所有这些都未经测试,但我很确定这是我之前所做的......

    编辑:

    显然,您必须在一定时间内并行运行这些应用程序,但由于它是一个内部应用程序,当您最终切换到新位置时,最糟糕的情况是您必须通知新位置的用户获取“固定”应用

    【讨论】:

    • 这行得通,虽然我发现更改“更新路径”和发布文件夹更明确。
    【解决方案4】:

    我相信你确实有证书。您需要一个来创建 ClickOnce 部署。 Visual Studio 可能已经为您自动创建了一个自签名的。我对这个过程不太熟悉,希望有更明确答案的人能参与进来。另外,您是否尝试过 MageUI 工具,也许使用 GUI 需要做的事情会更明显。

    【讨论】:

      猜你喜欢
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      • 2014-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多