在使用mage.exe构建时,如何允许ClickOnce应用程序使用Url参数?

时间:2013-10-24 17:48:37

标签: clickonce mage

我正在使用mage.exe构建一个仅限在线的ClickOnce应用程序,该应用程序在启动时需要获取参数。我想为此使用URL参数,但我找不到在mage.exe中执行此操作的方法。 VS和mageui具有信任URL参数选项,但在mage中没有任何内容。有什么我想念的吗?

如果没有,我需要在哪里设置此值?我尝试在.application文件中设置它,但这不起作用。也就是说,应用程序启动正常,但激活网址仍为空。我假设我需要更改其他xml文件,但我不知道哪些文件。

<deployment install="false" mapFileExtensions="true" trustURLParameters="true" />

谢谢, 埃里克

1 个答案:

答案 0 :(得分:3)

事实证明,mage.exe没有能力添加信任URL参数属性。 VS和MageUI.exe都可以这样做,但是如果你需要使用mage.exe(即构建脚本),那么你需要直接修改XML文件。我发现thread on MSDN包含以下PowerShell方法,效果很好。

[System.Xml.XmlDocument] $manifest = new-object System.Xml.XmlDocument
$manifest.load( (resolve-path $deploymentManifest) )
[System.Xml.XmlNode] $updateNode = $manifest.assembly.deployment.subscription.update
$updateNode.RemoveAll()
$updateNode.AppendChild($manifest.CreateElement("beforeApplicationStartup", "urn:schemas-microsoft-com:asm.v2"))
$trustUrlParameters = $manifest.CreateAttribute("trustURLParameters")
$trustUrlParameters.set_Value("true")
$manifest.assembly.deployment.SetAttributeNode($trustUrlParameters)
SaveXML "$deploymentManifest" $manifest
#Sign the mangled deployment manifest
mage -sign "$deploymentManifest" -CertHash $signingCertificateThumbPrint