2013-05-31 7 views
8

WiXでは、SQLiteを使用するC#プログラムを配布したいと思います。Wixでは、SQLiteを使用するプログラムを配布します(32ビットと64ビットの両方で動作する必要があります)

SQLite recommends the files structure belowので、私はそれを使用する:ウィックスで

enter image description here

、私はの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> 

問題: 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スクリプトから2つのディレクトリを削除してから、プログラムがインストールされている場所に手動でコピーすると動作します。ダムに聞こえるかもしれませんが、解決策は、WiXスクリプトにx86_とx64_ディレクトリを作成し、最初にプログラムの実行時に名前を変更することです。

答えて

18

SQLiteでは問題ありません。ディレクトリIDとしてx64を使用しています。これはここでの問題です。 ICE99は、WindowsVolumeのように、Windowsの予約済みプロパティをディレクトリIDとして使用するとエラーをスローします。

x64ディレクトリIDを変更する必要があります。この問題は修正されます。

<Directory Id='DIR_x64' Name='x64'> 
関連する問題