2013-02-07 157 views
0

我添加了一个项目引用到我的WiX项目,似乎一切正常,直到我去检查已安装的文件。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文件\我的WiX的测试),并期望点击exe文件来启动应用程序。但文件夹中的文件都没有扩展名。我必须手动重命名文件才能添加.exe或.txt文件,或者通过打开对话框进行操作。

有没有办法强制WiX添加扩展名,或者我做错了什么?

+1

让我傻笑,试图例如'NAME = “TxtFile.txt”' – Najzero

+0

@Najzero真的吗?那是它?我现在觉得很愚蠢。如果您将其作为答案张贴,我会接受。谢谢。 – Netfangled

回答

2

正如评论中所述,最简单的(在我们的项目中找到很多.wxs文件来查找我们使用自动检测的小地方)是在name=属性中指定扩展名。

经过一番斗争,我们进入了我们甚至命名id的风格,扩展的方式是不必查找ID属于什么名称和构建的文件。

例子:

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

如果源文件的名称是所需的名称,您也可以省略Name属性。 – BryanJ

+0

@BryanJ,现在这是非常有用的,因为我不知道,大多数文件保留其文件名。 – Najzero