【问题标题】:With Wix, distribute a program that uses SQLite (must work on both 32bit and 64bit)使用 Wix,分发使用 SQLite 的程序(必须同时在 32 位和 64 位上运行)
【发布时间】:2013-05-26 21:58:12
【问题描述】:

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

SQLite recommends the files structure below,所以我用它:

在 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 说 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_ 目录,并在程序第一次执行时重命名它们?

【问题讨论】:

    标签: wix 64-bit system.data.sqlite


    【解决方案1】:

    SQLite 没有问题。您使用 x64 作为目录 ID。这是这里的问题。如果您使用任何 Windows 保留属性作为目录 ID,如 WindowsVolumeICE99 将引发错误。

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

      <Directory Id='DIR_x64' Name='x64'>
    

    【讨论】:

    • 如果文件是由 heat.exe 获取/生成的,您有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 2020-07-28
    • 2013-11-17
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    相关资源
    最近更新 更多