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



我正在做一个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"

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

  • http://msdn.microsoft.com/en-us/library/cc144104 (VS.85) . aspx
  • http://phi.lho.free.fr/windows_tips/FileAssociations.en.html

最新更新