Nic*_*oul 12 64-bit wix system.data.sqlite
有了WiX,我想发布一个使用SQLite的C#程序.
SQLite推荐下面的文件结构,所以我使用它:

在Wix中,我创建了x86和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>
Run Code Online (Sandbox Code Playgroud)
问题: 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_目录,并在首次执行程序时重命名它们?
Vin*_*oth 22
SQLite没有问题.您正在使用x64作为目录ID.这是问题所在.如果您使用任何Windows保留属性作为WindowsVolume之类的目录ID,ICE99将引发错误.
您必须更改x64目录ID.它将解决这个问题.
<Directory Id='DIR_x64' Name='x64'>
Run Code Online (Sandbox Code Playgroud)