使用 Wix,分发使用 SQLite 的程序(必须同时在 32 位和 64 位上运行)

2023-12-20

通过 WiX,我想分发一个使用 SQLite 的 C# 程序。

SQLite 推荐以下文件结构 http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki,所以我用它:

在 Wix 中,我创建了x86 and x64文件夹并在每个文件夹中放入正确的 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>

PROBLEM:维克斯 说error LGHT0204 : ICE99: The directory name: x64 is the same as one of the MSI Public Properties and can cause unforeseen side effects.


提示:如果我从 WiX 脚本中删除这两个目录,然后手动将它们复制到安装程序的位置,那么它就可以工作。这听起来很愚蠢,但也许解决方案是在 WiX 脚本中创建 x86_ 和 x64_ 目录,并在第一次执行程序时重命名它们?


SQLite 没有问题。您正在使用 x64 作为目录 ID。这就是这里的问题。ICE99 http://msdn.microsoft.com/en-us/library/aa369070.aspx如果您使用任何 Windows 保留属性作为目录 ID,则会引发错误Windows卷.

您必须更改 x64 目录 ID。它将解决这个问题。

  <Directory Id='DIR_x64' Name='x64'>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Wix,分发使用 SQLite 的程序(必须同时在 32 位和 64 位上运行) 的相关文章

随机推荐