我在网络驱动器上的发布文件夹中有一组 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 %2REM 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/