WIX:如何将应用程序注册到URL协议?

WIX:如何将应用程序注册到URL协议?,url,wix,protocols,wix3.5,Url,Wix,Protocols,Wix3.5,在WiX中,您可以轻松注册文件类型: <ProgId Id="MyApp.File" Description="MyApp File" Icon="MyAppEXE" IconIndex="0"> <Extension Id="ext" ContentType="application/x-myapp-file"> <Verb Id="open" Command="&amp;Open" TargetFile="MyAppEXE" Argument

在WiX中,您可以轻松注册文件类型:

<ProgId Id="MyApp.File" Description="MyApp File" Icon="MyAppEXE" IconIndex="0">
  <Extension Id="ext" ContentType="application/x-myapp-file">
    <Verb Id="open" Command="&amp;Open" TargetFile="MyAppEXE" Argument="&quot;%1&quot;"/>
  </Extension>
</ProgId>

如果我想注册指定的URL协议,该怎么办?显然,它没有扩展名,所以我应该把
动词
标记放在哪里?或者我应该使用另一种方法


谢谢。

我怀疑WiX中是否有现成的功能(可能是3.6?),但从您提供的链接可以看出,注册URL协议的过程是向系统注册表添加大量条目。因此,您可以手动添加RegistryKey/RegistryValue元素来模拟此操作。

只需添加@Yan Sklyarenko答案的代码:


  • MyMainProgram
    是对wix安装项目中我的主项目的引用
  • protocolname
    是url中使用的协议名称:
    protocolname://
  • 协议名称
    是协议的正式名称

谢谢!我相信这是正确的方向。最直接的解决方案是从注册表导出一个有效的协议条目,然后通过heat.exe运行它。这将生成必要的RegistryKey/RegistryValue元素。我知道这是一个老问题,但您有使用wix代码的示例吗?谢谢。@JérémieBertrand,这只是当时我脑子里的一个想法,手头没有代码样本