【问题标题】:WiX removing file extensionsWiX 删除文件扩展名
【发布时间】:2013-02-07 13:17:28
【问题描述】:

我在我的 WiX 项目中添加了一个项目引用,一切似乎都在工作,直到我去检查已安装的文件。

他们不再有他们的扩展!因此无法使用为该扩展注册的任何应用程序自动打开。

以下是相关代码:

<Directory Id="TARGETDIR" Name="SourceDir">
    <Directory Id="ProgramFilesFolder">
        <Directory Id="INSTALLDIR" Name="My WiX Test">
            <Component Id="ExeCom" Guid="PUT-GUID-HERE" Directory="INSTALLDIR">
                <File Id="ExeFile" Name="ExeFile" Source="$(var.MyForm.TargetPath)" KeyPath="yes"/>
            </Component>
            <Component Id="TxtCom" Guid="PUT-GUID-HERE" Directory="INSTALLDIR">
                <File Id="TxtFile" Name="TxtFile" Source="sometextfile.txt" KeyPath="yes"/>
            </Component>
        </Directory>
    </Directory>
</Directory>

<Feature Id="Complete" Title="Complete" Level="1">
    <ComponentRef Id="ExeCom"/>
    <ComponentRef Id="TxtCom"/>
</Feature>

安装完成后,我进入安装文件夹(Program Files\My WiX Test)并希望单击 exe 文件来启动应用程序。但是文件夹中的所有文件都没有扩展名。我必须手动重命名文件以添加 .exe 或 .txt,或者通过打开对话框。

有没有办法强制 WiX 添加扩展,还是我做错了什么?

【问题讨论】:

  • 这让我傻笑,例如Name="TxtFile.txt"
  • @Najzero 认真的吗?是这样吗?我现在觉得自己好傻。如果您将其发布为答案,我会接受。谢谢。

标签: wix wix3


【解决方案1】:

正如 cmets 中所述,最简单的(对于我们项目中的许多 .wxs 文件来查找我们使用自动检测的微小位置)是在 name= 属性中指定扩展名。

经过一番努力,我们采用了一种风格,甚至将 id 命名为扩展名的方式,这样就不必从构建中查找哪个 ID 属于哪个名称和哪个文件。

例子:

<Component Id="ImplantCopyRight">
<File Id="Copyright.txt" Name="Copyright.txt" 
Source="$(var.SourceRoot)/08-Impl/img/license/Implants/Copyright.txt" />

【讨论】:

  • 如果源文件的名称是所需的名称,您也可以省略 Name 属性。
  • @BryanJ,现在这很有帮助,因为我不知道,而且大多数文件都保留了它们的文件名。
猜你喜欢
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
  • 2012-06-29
  • 2019-01-03
  • 1970-01-01
  • 2011-11-24
  • 2011-03-14
  • 2013-01-04
相关资源
最近更新 更多