2010-10-18 66 views
18

Tôi đã không cố gắng tìm một bài viết hoặc đăng danh sách các giới hạn chức năng của WiX (Windows Installer XML)/WiX Toolset. Sau khi sử dụng WiX cho một vài tuần, tôi có thể nghĩ đến ít nhất hai hạn chế trong phiên bản mới nhất RTM (v3.0):Giới hạn của WiX và WiX Toolset là gì?

  • WiX Toolset không thể làm cho một bootstrapper (setup.exe) .
  • Công cụ WiX không thể truy xuất Đăng ký COM thông tin từ COM thực thi.

Bạn có thể nghĩ đến các giới hạn khác không? Một cái gì đó bạn chạy vào trong khi làm việc trên một dự án triển khai? Tôi nghĩ rằng thông tin này có thể hữu ích cho những người học WiX.

+1

Nhờ cả Yan và Chris để có câu trả lời sâu sắc. Tôi ước tôi có thể chọn cả hai câu trả lời là câu trả lời được chấp nhận. –

Trả lời

19

Cách dễ nhất để tôi trả lời câu hỏi này là thiếu WiX mà InstallShield có (khoảng cách tính năng).

  • Bootstrapper/Chainer - WiX có bootstrapper được gọi là Ghi hiện được bao gồm trong WiX v3.6.
  • XML Đọc - WiX chỉ có CA cho viết không đọc (AppSearch) XML file
  • Text Search/Replace - InstallShield có mô hình đọc/ghi không INI file/XML
  • MSSQL Chỉ - Không hỗ trợ cho Oracle và MySQL
  • Giao diện tự động - Không có DOM cho cập nhật/tạo dự án có lập trình. Phải làm tất cả với nguyên mẫu XML.
  • Không hỗ trợ Native IIS 7 - Hỗ trợ IIS7 gốc có từ WiX v3.5
  • Bộ công cụ chỉ có văn bản. Không có GUI Các nhà thiết kế để nâng vật nặng (xem IsWiX). XML ngắn gọn và có địa chỉ nhưng giống như so sánh Notepad với Blend.

Tôi đã sử dụng nhiệt để trích xuất COM khá thành công nên không còn là mối quan tâm với tôi nữa.

+0

Điểm tuyệt vời. Cảm ơn bạn. Btw, tôi giả sử bạn sử dụng nhiệt để trích xuất thông tin COM từ DLL, chứ không phải EXE, phải không? –

+0

@Chris: +1 cho điểm 2 - 4. Những người đó cũng ảnh hưởng đến công việc của tôi, nhưng tôi quên đề cập đến nó trong câu trả lời của tôi. –

+0

Tôi làm điều đó cho EXE/DLL và Quản lý/Không được quản lý. Tôi sử dụng một chương trình nhỏ tôi đã viết mà đặt một watcher hệ thống tập tin vào một thư mục và gọi nhiệt mỗi khi thay đổi nội dung. Tôi đưa vào tập tin của tôi sau đó tôi đặt trong đó phụ thuộc của nó cho đến khi nó hoạt động và cắt/dán các yếu tố COM. Sau đó, trên một máy sạch tôi cài đặt và thử nghiệm. –

12

tôi sẽ thêm một số điểm nhiều hơn, nhưng những khó có thể được gọi là hạn chế nghiêm trọng kể từ khi tất cả họ đều có thể được làm việc xung quanh:

  • Không có công cụ làm sẵn để nhúng biến đổi (MST) vào gói MSI; Đây là nơi msidb.exe đến để giải cứu
  • Bạn phải làm thêm công việc để tạo một gói duy nhất với một số bản địa hóa, như tạo gói N, tạo N chuyển đổi ngôn ngữ dựa trên gói trung lập, nhúng những biến đổi đó vào gói , hướng dẫn bootstrapper của bạn gọi chính xác biến đổi ngôn ngữ
  • WiX 3.0 có phần mở rộng IIS khá hạn chế - nó hỗ trợ IIS 7 chỉ trong chế độ tương thích IIS 6; nhưng may mắn thay điều này không còn đúng đối với WiX 3.5
  • Nhiệt không thể tạo "1 thành phần - N tệp" theo mặc định. Vâng, tôi biết, nó không được khuyến khích, nhưng đôi khi bạn cần nó; may mắn thay, bạn có thể biến đổi đầu ra nhiệt theo cách bạn muốn với XSL
  • PermissionEx of UtilExtension không có nút chuyển để chỉ đặt ACL trên các thư mục. Nếu bạn chỉ cần đặt ACL cho các tệp đã cài đặt của mình, điều này khá nhỏ. Nhưng tôi đã phải vá WiX với một sửa chữa nhanh chóng để có thể nói "áp dụng các điều khoản cho các thư mục chỉ" trên cây hệ thống tập tin hiện có

Một lần nữa, hãy để tôi lặp lại rằng tôi không xem xét những hạn chế nghiêm trọng. Tôi rất hài lòng với những gì Rob và nhóm đã làm cho đến nay, và họ đang đi đúng hướng! :)

+0

Chính xác thông tin tôi đang tìm kiếm. Cảm ơn Yan. –

+1

Xe lửa có thể (chủ yếu) đi đúng hướng nhưng khoảng 5 năm sau lịch trình. Tôi tồn tại những hạn chế của WiX bằng cách pha trộn nó với InstallShield nhưng từ quan điểm của tôi, thiếu bootstrapper là một kẻ giết người thỏa thuận ngăn cản tôi đi 100% WiX cho thời điểm này. Tuy nhiên, bằng cách sử dụng WiX stragically để thay thế các phần của InstallShield đã bật ra rất tốt cho tôi. –

+0

Đối với điểm thứ hai: đây chính xác là những gì mà SharpSetup thực hiện (+ vài thứ khác như nó bổ sung khả năng chỉnh sửa GUI cài đặt trong VS designer). –

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