使用Wix,分发一个使用SQLite的程序(必须同时在32位和64位上工作)
有了WiX,我想发布一个使用SQLite的C#程序 ,所以我用它: 在Wix中,我创建x86和x64文件夹,并在每个文件夹中放置正确的DLL:使用Wix,分发一个使用SQLite的程序(必须同时在32位和64位上工作),wix,64-bit,system.data.sqlite,Wix,64 Bit,System.data.sqlite,有了WiX,我想发布一个使用SQLite的C#程序 ,所以我用它: 在Wix中,我创建x86和x64文件夹,并在每个文件夹中放置正确的DLL: <Directory Id='x86' Name='x86'> <Component Id='x86' Guid='...'> <CreateFolder /> <File Id='f86' Name='SQLite.Interop.dll' Source='x86\SQLite.I
<Directory Id='x86' Name='x86'>
<Component Id='x86' Guid='...'>
<CreateFolder />
<File Id='f86' Name='SQLite.Interop.dll' Source='x86\SQLite.Interop.dll' />
</Component>
</Directory>
<Directory Id='x64' Name='x64'>
<Component Id='x64' Guid='...'>
<CreateFolder />
<File Id='f64' Name='SQLite.Interop.dll' Source='x64\SQLite.Interop.dll' />
</Component>
</Directory>
问题:WiX表示错误LGHT0204:ICE99:目录名:x64与MSI公共属性之一相同,可能会导致不可预见的副作用。
提示:如果我从WiX脚本中删除这两个目录,然后手动将它们复制到安装程序的地方,那么它就可以工作了。这听起来很愚蠢,但也许解决方案是在WiX脚本中创建x86和x64目录,并在第一次执行程序时重命名它们?SQLite没有问题。您正在使用x64作为目录ID。这就是问题所在。如果将任何Windows保留属性用作目录ID,如WindowsVolume,则引发错误 您必须更改x64目录ID。它将解决此问题
<Directory Id='DIR_x64' Name='x64'>
您知道文件是否由heat.exe获取/生成吗?