我创建了一个可以打开图像文件的应用程序.现在我正在使用WiX Toolset创建一个安装程序.在过去的几天里,我遇到了一些误解:尝试注册我的应用并将其与所需的扩展相关联.一切都出现在注册表中,但我的文件都没有打开我的应用程序,就像它没有安装一样.
这是我描述可执行文件并为其注册所有扩展的部分:
<Component Id="CmpLightImageViewer.exe" Guid="{...}">
<File Id="MainExe" Name="LightImageViewer.exe" />
</Component>
<Component Id="CmpLightImageViewerProgId" Guid="{391FBC30-B5A1-4AB7-8FA4-254C1CE2BF69}" KeyPath="yes">
<ProgId Id="LightImageViewerSvg" Description="Light image viewer">
<Extension Id="svg">
<Verb Id="open" TargetFile="MainExe" Argument=""%1"" />
</Extension>
</ProgId>
<ProgId Id="LightImageViewerGif" Description="Light image viewer">
<Extension Id="gif">
<Verb Id="open" TargetFile="MainExe" Argument=""%1"" />
</Extension>
</ProgId>
...
</Component>
这就是我在我的注册表HKCR中看到的.在HKCU / Software / Classes中相同,但不在HCLM / Software / Classes中:
我错过了什么?我还需要做些什么才能让它发挥作用?虽然我可以使用Windows工具手动为每种类型设置文件关联,但这并不是我希望它工作的方式.
我正在使用wix3.10在windows10中使用vs2015构建它
最佳答案 这是在Vista中启动的一种安全功能 – Windows保护“默认”关联,允许用户选择它们.如果你希望你的程序成为处理现有文件类型的“默认”,从而覆盖用户设置(这正是这个功能应该防止的,据我所知),那么你可以看一下这个问题一个例子:
How to associate application with existing file types using WiX installer?