2008-12-24 26 views
7

Tôi sử dụng WiX3 để tạo gói cài đặt MSI. tôi đã xác định comression cờ trong cả hai yếu tố <Package><Media>:WiX tạo MSI không bị nén

<Package InstallerVersion="200" Compressed="yes"/> 
<Media Id="1" Cabinet="MySetup.cab" EmbedCab="yes" CompressionLevel="high" /> 

nhưng kết quả MSI không được nén ở tất cả - WinZip nén nó từ 2M xuống 600K.

Tôi có thiếu gì đó không?

Tôi đang sử dụng VS2008 btw.

+0

Các thẻ xml mà bạn chỉ định không đi ra trong văn bản. Tôi nghĩ việc đánh dấu chúng là "mã" sẽ hiển thị chúng trong văn bản. – vividos

Trả lời

2

Có điều gì đó thiếu trong câu hỏi của bạn. Nhưng làm sao bạn biết nó không bị nén. Nếu Winzip có thể nén nó hơn nữa, nó không phải lúc nào cũng có nghĩa là nó không được nén. Bạn có thể sử dụng 7-zip để điều tra tệp msi kết quả. Nên có một chiếc taxi bên trong, giải nén nó, và nhìn vào kích thước trước và sau khi giải nén.

4

Tệp MSI không phải là tệp lưu trữ có cấu trúc OLE. Chúng không thể được nén và có Trình cài đặt Windows vẫn có thể đọc chúng. Tuy nhiên, nhiều thứ được lưu trữ trong tệp MSI (chẳng hạn như đồ họa giao diện người dùng và DLL tùy chỉnh và biểu tượng lối tắt), do đó bạn nên ý thức về nội dung bạn đang đưa vào MSI.

Không có gì trong bộ công cụ WiX để phân tích từng thứ bạn đang đặt trong MSI và nén chúng (ngoại trừ tệp cab, dĩ nhiên vì trình cài đặt Windows được nén).

Thành thật mà nói, Trình cài đặt Windows không hỗ trợ nén tốt nhất hiện nay. Một điều cần làm là xây dựng gói và sử dụng bootstrapper phân phối nội dung nén và giải nén trước khi chuyển nó tới Trình cài đặt Windows. Đó là kế hoạch cho bootstrapper burn của WiX v3.5.

1

Về các ảnh bitmap lớn, tôi khuyên bạn nên chỉnh sửa chúng trong photoshop để thu nhỏ chúng xuống. Tôi quản lý để có được hai bitmap 600K xuống ~ 35k mỗi bit bằng cách thay đổi chúng thành một bảng màu được lập chỉ mục (Image> Mode> Indexed) và sau đó lưu tệp kết quả dưới dạng BMP nén 8 bit.

Cho nó một shot;)

Các vấn đề liên quan