2013-05-31 8 views
8

Con WiX, voglio distribuire un programma C# che utilizza SQLite.Con Wix, distribuire un programma che utilizza SQLite (deve funzionare su entrambi i 32 bit e 64 bit)

SQLite recommends the files structure below, quindi lo uso:

enter image description here

In Wix, creo il x86 e x64 cartelle e mettere la DLL proprio di ciascuna:

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

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


Suggerimento: se rimuovo le due directory dallo script WiX, quindi le copio manualmente nel punto in cui è installato il programma, quindi funziona. Sembra stupido, ma forse la soluzione è creare directory x86_ e x64_ nello script WiX e rinominarle alla prima esecuzione del programma?

risposta

18

Nessun problema con SQLite. Stai usando x64 come ID della directory. Questo è il problema qui. ICE99 genera errore se si utilizza qualsiasi proprietà riservata di Windows come ID directory come WindowsVolume.

È necessario modificare l'ID della directory x64. Risolverà questo problema.

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