Wix文件关联与标准Windows文件

时间:2011-08-01 16:13:19

标签: wix file-association

我正在开发一个Wix项目。我需要关联一个新的文件扩展名。本身看起来很简单。问题是我想将新扩展名关联为一种可以使用标准Windows NotePad.exe打开的文本文件。我遇到的问题是我不想复制My 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>

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

由于

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:0)

Windows Installer不支持已安装产品的文件关联。因此,如果要为现有文件创建文件关联,可以尝试通过注册表项手动创建它: