【发布时间】:2017-10-18 02:52:22
【问题描述】:
当应用程序文件具有 *.deploy 扩展名时,如何使用 mage.exe 创建 ClickOnce 部署清单?有些人放弃并改用 MSBuild.exe 和 GenerateDeploymentManifest 任务。如果你想直接使用mage.exe呢?
【问题讨论】:
当应用程序文件具有 *.deploy 扩展名时,如何使用 mage.exe 创建 ClickOnce 部署清单?有些人放弃并改用 MSBuild.exe 和 GenerateDeploymentManifest 任务。如果你想直接使用mage.exe呢?
【问题讨论】:
如果你想单独使用mage.exe,你需要知道的是它是做不到的。至少不是单独使用 mage.exe。
Mage.exe 无法构建部署清单(*.application 文件)以下载 *.deploy 文件。您必须在签名之前手动编辑部署清单(*.application 文件)。具体来说,您需要将 mapFileExtensions 属性添加到部署 XML 元素。
例如,假设您在名为 1.0.0.0. 的文件夹中有一个名为 ClickOnceText.exe 的可执行文件,请执行以下操作:
> mage -n Application -t 1.0.0.0\ClickOnceTest.exe.manifest -fd 1.0.0.0 -cf ..\code.p12 -pwd passwd
ClickOnceTest.exe.manifest successfully signed
> mv 1.0.0.0\ClickOnceTest.exe 1.0.0.0\ClickOnceTest.exe.deploy
> mage -n Deployment -t ClickOnceTest.application -appm 1.0.0.0\ClickOnceTest.exe.manifest
ClickOnceTest.application successfully created
> notepad ClickOnceTest.application
这就是诀窍。将 mapFileExtensions 添加到部署元素:
<deployment mapFileExtensions="true" ... >
然后签署部署清单(*.application)。
> mage -u ClickOnceTest.application -cf code.p12 -pwd passwd
ClickOnceTest.application successfully signed
【讨论】:
就像 Wally 所说,您不能为 *.deploy 文件制作部署清单。
但是,您可以删除 .deploy 扩展名,然后使用 Mage.exe。您可以手动删除 .deploy 扩展名,也可以在 Visual Studio 中项目的“属性”下的“发布”小节中执行此操作(我使用的是 2017,但早期版本也应该如此。)
在发布下,选择选项。 在发布选项中,选择部署。有一个复选框,您可以在其中切换“使用'.deploy'文件扩展名”。通过取消选中此框,您的应用的构建/发布将生成所有常用文件,但跳过 .deploy 扩展名。
从这里,您可以直接使用 Mage.exe。
【讨论】: