我已经查看了关于SO的几个示例,但是我无法找出解决问题的方法。我正在尝试在MSI中指定源文件。这是我到目前为止的代码段。
<Directory Id="TARGETDIR" Name="SourceDir">
<Component Id ="FileAssociation" Guid="*">
<File Id="myapp.exe" Source="myapp.exe" />
</Component>
</Directory>
我知道SourceDir
是必需的,但我不知道如何配置它。我正在手工编写此代码,但对WiX还是很陌生。目标是制作Java代码安装程序。 setupBuilder允许我构建WiX安装程序,但必须定义.wsx配置以获得其他功能。最终目标是将自定义文件类型与我的应用程序相关联,但我什至无法在MSI中找到可执行文件。
到目前为止,我得到的错误是
error LGHT0103 : The system cannot find the file 'wblite_debug.exe'
。
我猜我需要指定SourceDir
指向具有MSI安装程序的目录?我在正确的轨道上吗?
答案 0 :(得分:0)
在<File>
元素中,Source
属性指定在哪里找到文件。
<File Id="wblite_debug.exe" Source="[path_to_file]\wblite_debug.exe" />
答案 1 :(得分:0)
由于与SetupBuilder合并存在一些问题,因此我似乎需要做一些技巧。这是我提供给SetupBuilder的wxs文件,用于获取我要查找的文件关联。
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product>
<Component Id="FileAssociation" Directory="INSTALLDIR" Guid="*">
<CreateFolder/>
<ProgId Id ="file.file" Description="My File">
<Extension Id ="file" ContentType="application/file">
<Verb Id ="open" Command="open" TargetFile="_myapp.exe" Argument='"%1"'/>
<MIME ContentType="application/file" Default="yes" />
</Extension>
</ProgId>
</Component>
<DirectoryRef Id="INSTALLDIR">
<Component Guid="*" Id="_Comp">
<CreateFolder/>
<File Id="_myapp.exe" Name="myapp.exe" Source="loc\myapp.exe"/>
</Component>
</DirectoryRef>
<Feature Id="MainApplication">
<ComponentRef Id="FileAssociation"/>
</Feature>
</Product>
答案 2 :(得分:0)
查看您的WiX代码,我发现您在MSI目标和源文件夹路径之间感到困惑。 Directory标记是在运行MSI的机器上(要部署应用程序的位置)创建一个文件夹-与打包文件的源文件夹无关。
将文件路径替换为:
<File Id="wblite_debug.exe" Source= "\TESTfolder\wblite_debug.exe" KeyPath="yes"/>
如您所见,文件->源属性路径应参考WXS文件路径编写。