我正在开发一个 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/