Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Wix,分发一个使用SQLite的程序(必须同时在32位和64位上工作)_Wix_64 Bit_System.data.sqlite - Fatal编程技术网

使用Wix,分发一个使用SQLite的程序(必须同时在32位和64位上工作)

使用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

有了WiX,我想发布一个使用SQLite的C#程序

,所以我用它:

在Wix中,我创建x86x64文件夹,并在每个文件夹中放置正确的DLL:

 <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获取/生成吗?