当应用程序文件具有* .deploy扩展名时,如何使用mage.exe创建ClickOnce部署清单?有些人放弃并使用MSBuild.exe和GenerateDeploymentManifest任务。如果你想直接使用mage.exe怎么办?
答案 0 :(得分:5)
如果你想单独使用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
答案 1 :(得分:0)
像Wally所说,你不能为* .deploy文件制作部署清单。
但是,您可以删除.deploy扩展名,然后使用Mage.exe。您可以手动删除.deploy扩展,也可以在Visual Studio中项目的属性下的“发布”子部分中执行此操作(我使用的是2017年,但早期版本也应如此。)
在“发布”下,选择“选项”。 在“发布选项”内,选择“部署”。有一个复选框,您可以在其中切换“使用'.deploy'文件扩展名”。通过取消选中此框,您的应用程序的构建/发布将生成所有常用文件,但跳过.deploy扩展名。
从这里,您可以直接使用Mage.exe。