使用 Wix,分发一个使用 SQLite 的程序(必须在 32 位和 64 位上工作) [英] With Wix, distribute a program that uses SQLite (must work on both 32bit and 64bit)

查看:24
本文介绍了使用 Wix,分发一个使用 SQLite 的程序(必须在 32 位和 64 位上工作)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

会引发错误,例如 <强>WindowsVolume.

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

 

With WiX, I want to distribute a C# program that uses SQLite.

SQLite recommends the files structure below, so I use it:

In Wix, I create the x86 and x64 folders and put the right DLL in each:

 <Directory Id='x86' Name='x86'>
   <Component Id='x86' Guid='...'>
     <CreateFolder />
     <File Id='f86' Name='SQLite.Interop.dll' Source='x86SQLite.Interop.dll' />
   </Component>
 </Directory>
 <Directory Id='x64' Name='x64'>
   <Component Id='x64' Guid='...'>
     <CreateFolder />
     <File Id='f64' Name='SQLite.Interop.dll' Source='x64SQLite.Interop.dll' />
   </Component>
 </Directory>

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


Tip: If I remove the two directories from the WiX script, and then copy them manually to the place where the program is installed, then it works. It sounds dumb, but maybe the solution is to create x86_ and x64_ directories in the WiX script, and rename them at first execution of the program?

解决方案

There is no issue with SQLite. You are using x64 as the Directory ID. This is the issue here. ICE99 throws error if you use any Windows reserved property as Directory ID like WindowsVolume.

You have to Change the x64 directory ID. It will fix this issue.

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

这篇关于使用 Wix,分发一个使用 SQLite 的程序(必须在 32 位和 64 位上工作)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆