2013-05-31 57 views
8

Với WiX, tôi muốn phân phối chương trình C# sử dụng SQLite.Với Wix, phân phối chương trình sử dụng SQLite (phải hoạt động trên cả 32bit và 64bit)

SQLite recommends the files structure below, vì vậy tôi sử dụng nó:

enter image description here

Trong Wix, tôi tạo ra x86x64 thư mục và đặt DLL ngay trong mỗi:

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

VẤN ĐỀ: WiX nói error LGHT0204 : ICE99: The directory name: x64 is the same as one of the MSI Public Properties and can cause unforeseen side effects.


Mẹo: Nếu tôi xóa hai thư mục khỏi tập lệnh WiX, sau đó sao chép chúng theo cách thủ công đến vị trí chương trình được cài đặt, sau đó nó hoạt động. Nghe có vẻ ngu ngốc, nhưng có lẽ giải pháp là tạo các thư mục x86_ và x64_ trong kịch bản WiX, và đổi tên chúng lúc thực thi đầu tiên của chương trình?

Trả lời

18

Không có vấn đề với SQLite. Bạn đang sử dụng x64 làm ID thư mục. Đây là vấn đề ở đây. ICE99 ném lỗi nếu bạn sử dụng bất kỳ thuộc tính dành riêng cho Windows nào làm ID thư mục như WindowsVolume.

Bạn phải thay đổi ID thư mục x64. Nó sẽ khắc phục vấn đề này.

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