我正在用更新版本替换应用程序所需的 dll。然后我需要更新应用程序清单。使用 UI 时,应用程序将运行。命令行创建了一个无效的清单。
场景:clickonce 应用程序结构如下: -Directory(包含完整应用程序)--clickonceApp.application --VersionDirectory(版本化文件夹) ---clickonceApp.manifest ---dlls
- 替换dll文件
- 在 VersionDirectory 中,运行 mage.exe -update clickonceApp.manifest -FromDirectory 。
- 从目录,运行 mage.exe -update clickonceApp.application -appmanifest .\VersionDirectory\clickonceApp.manifest
- 应用程序无法启动,原因是:命名空间“urn:schemas-microsoft-com:asm.v2”中的元素“dependentAssembly”在命名空间“urn:schemas-microsoft-com:asm.v2”中有无效的子元素“hash”。预期的可能元素列表:命名空间“urn:schemas-microsoft-com:asm.v2”中的“assemblyIdentity”。
- 启动 MageUI(使用相同的 mage.exe)
- 打开 clickonceApp.manifest
- 在文件选项卡上,单击填充
- 单击保存并接受未签名的警告
- 从目录,运行 mage.exe -update clickonceApp.application -appmanifest .\VersionDirectory\clickonceApp.manifest
- 应用程序启动成功
为什么法师和法师有区别?打开现有清单