c# - 如何移动 ClickOnce 部署包

标签 c# clickonce manifest

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

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

Activation of ...MyClickOnceApp.application resulted in exception. Following failure messages were detected:

+ Downloading file://oldMachine/c$/MyClickOnceApp.application did not succeed.

+ Could not find a part of the path '\\oldMachine\c$\MyClickOnceApp.application'.

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

Manifest XML signature is not valid.

+ The digital signature of the object did not verify.

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

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

最佳答案

我找到了一个解决方案:

首先,使用 MageUI,我更改了“部署选项”下的“开始位置”。保存时,它提示我使用我当时创建的 key 进行签名。然后我运行了 setup.exe 文件,它成功运行了。

检查哪些文件发生了变化后,我意识到只有一个文件:应用程序 list 文件 (myAppName.application)。文件中唯一改变的是部署提供商签名(这是我在MageUI)。

当我意识到这是如何做到这一点后,我使用了 SDK 附带的名为 Mage.exe 的 MageUI 命令行版本。

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

REM Set the enviroment
call "C:\Program Files\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"

REM Update the deployment provider URL
mage -Update %1.application -pu %2

REM Sign the manifest with our key
mage -Sign %1.application -CertFile C:\AppKey.pfx -Password myPw

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

关于c# - 如何移动 ClickOnce 部署包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/174764/

相关文章:

c# - OpenWebKitSharp 并点击一次?

.net - 两个项目的 ClickOnce 部署各有自己的配置文件

android - Gradle 进程 list 与新的 Manifest Merger

java - 如何让我的 Java 小程序再次工作

.net - ClickOnce 设计我们的可执行文件并显示 "Unknown Publisher"

java - 为什么 jar 忽略我的 list ?

c# - string.IsNullOrEmpty + Entity Framework 5

通过 USB 连接的任何设备的 C# IMEI 检测

c# - 为什么 DefaultAzureCredential 尝试在本地计算机上使用 ManagedIdentityCredential?

c# - 禁止用户在未登录的情况下访问页面/URL