Wix 文件与标准 Windows 文件关联

标签 wix file-association

我正在开发一个 Wix 项目。我需要关联一个新的文件扩展名。其本身看起来很简单。问题是我想将新扩展名关联为一种可以使用标准 Windows NotePad.exe 打开的文本文件类型。我的问题/担忧是我不想复制我的 XP 版本的记事本并将其安装在最终用户的 System32 中并覆盖他们应该已经存在的 XP、Vista、Windows7 等记事本。

我应该如何正确引用这个协会。

最终答案归功于@Sunil

Wix 3.5 不喜欢具有系统文件夹和文件名的目标文件...因此,在我的组件/目录中,我创建了一个指向相关文件的文件 ID 条目,然后,与此关联的扩展名文件 ID 引用如下...

<File Id="LinkingNotePad" Source="$(env.windir)\Notepad.exe" ></File>

<ProgId Id="MyProgID" Description="Text files for my new extension" Advertise="no" >
   <Extension Id="myExt" ContentType="application/text" Advertise="no" >
      <Verb Command="Open" Id="regMyProgID" TargetFile="LinkingNotePad" Argument="%1" />
   </Extension>
</ProgId>

在上面的示例中,它无法解析目标文件,因为我没有明确告诉它在哪里可以找到它。我不希望它获取我的版本并覆盖用户版本。

谢谢

最佳答案

可以使用 WIX 变量“SystemFolder”访问所有系统文件。

SystemFolder 将为您提供默认的 Windows 文件夹路径。所以你将有 TargetFile=[SystemFolder]Notepad.exe"

关于Wix 文件与标准 Windows 文件关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6901285/

相关文章:

c# - RegistryValue 在进行 Wix 次要升级后消失

c# - C#中如何获取与文件扩展名关联的推荐程序

java - 如何使 Windows 文件关联与非 ASCII 文件名一起使用?

c# - WPF 应用程序文件关联 : DefaultIcon is not working

javascript - 在 javascript 中通过 D-click 将参数传递给应用程序

wix - 如何在安装程序退出时执行多个启动条件

wix - 无法使用 wix 安装程序更新明智的安装程序包

c++ - 如何确定 services.msc 管理单元是否已加载到 mmc 控制台?

hyperlink - WiX 自定义许可证文件 : setup shows links with < >

java - JDIC需要运行哪些文件?