Wix文件与标准Windows文件的关联

Wix文件与标准Windows文件的关联,wix,file-association,Wix,File Association,我在做一个Wix项目。我需要关联一个新的文件扩展名。就其本身而言,这似乎很简单。问题是我想将一个新的扩展名关联为一种文本文件类型,可以用标准的Windows NotePad.exe打开。我的问题/顾虑是,我不想复制我的XP版本记事本,并将其安装在最终用户的系统32中,然后覆盖他们的XP、Vista、Windows7等记事本,这些记事本应该已经存在 我应该如何正确地引用该协会 最终答案记入@Sunil Wix 3.5不喜欢具有系统文件夹和文件名的目标文件。。。因此,在我的组件/目录中,我创建了一个

我在做一个Wix项目。我需要关联一个新的文件扩展名。就其本身而言,这似乎很简单。问题是我想将一个新的扩展名关联为一种文本文件类型,可以用标准的Windows NotePad.exe打开。我的问题/顾虑是,我不想复制我的XP版本记事本,并将其安装在最终用户的系统32中,然后覆盖他们的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“

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