Lợi ích của công ty khi sử dụng tệp MSI


57

Những lợi thế của việc sử dụng tệp .msi so với các tệp setup.exe thông thường là gì?

Tôi có ấn tượng rằng việc triển khai dễ dàng hơn trên các máy mà người dùng có ít quyền, nhưng không chắc chắn về các chi tiết.

Msiexec.exe có những tính năng nào giúp triển khai dễ dàng hơn so với sử dụng các kịch bản setup.exe?

Bất kỳ mẹo hoặc thủ thuật khi triển khai các ứng dụng .msi?

Câu trả lời:


42

Chỉ cần một vài lợi ích:

  • Có thể được quảng cáo (để cài đặt theo yêu cầu có thể diễn ra).
  • Giống như quảng cáo, các tính năng có thể được cài đặt ngay khi người dùng cố gắng sử dụng chúng.
  • Quản lý trạng thái được duy trì để Windows Installer cung cấp cách cho phép quản trị viên xem ứng dụng có được cài đặt trên máy không.
  • Khả năng quay trở lại nếu cài đặt thất bại.

Tôi nghĩ đến khi tôi triển khai phần mềm trong cài đặt doanh nghiệp: triển khai phần mềm qua MSI gần như rất thú vị. Ngược lại, tôi hầu như luôn thấy mình sợ phần mềm triển khai khi nó ở trong một container khác.

Để biết thêm thông tin về thao tác cài đặt MSI, hãy nhập msiexecvào hộp thoại Run.


3
+1 - Tôi đã không thấy cái này trở lại trong '09 (Tôi nghĩ rằng trang web có thể vẫn đang trong giai đoạn thử nghiệm trở lại), nhưng tôi thích bit "... Tôi hầu như luôn thấy mình sợ hãi ...". Tôi hoàn toàn cảm thấy như vậy (mặc dù, công bằng mà nói, một số "MSI" khiến tôi cảm thấy giống như ... Java ... Google Chrome ...).
Evan Anderson

74

CẬP NHẬT, tháng 7 năm 2018 : Một bản tóm tắt cực kỳ nén các thông tin dưới đây có sẵn trên stackoverflow: Lợi ích chính của MSI ( "executive summary"- thuộc loại).


Tôi đã làm việc trong lĩnh vực phát triển như một người quản lý phát hành , kỹ sư xây dựng , nhà phát triển thiết lập và là một nhà đóng gói ứng dụngkỹ sư triển khai trong các tập đoàn lớn.

Đây là đánh giá về các tính năng khái niệmthế giới thực tốt nhất (và tồi tệ nhất) của MSI. Các vấn đề thiết kế phổ biến nhất được tìm thấy trong các tệp MSI được trình bày dưới dạng một câu trả lời riêng bên dưới . Không giả vờ là hoàn chỉnh - thực sự chỉ là một "đống não" lộn xộn - dự định là "những thứ không thể tìm thấy trong sách" (có lẽ vì lý do chính đáng).

Tôi cũng muốn đề xuất bài viết MSDN này là một bài đọc tốt: Windows Installer: Lợi ích và triển khai cho Quản trị viên hệ thống .


Tiêu chuẩn hóa:

Nói một cách dễ hiểu, MSI nói về tiêu chuẩn hóa và về việc xử lý " mùi triển khai " của các công nghệ cài đặt cũ. Cả một bộ sưu tập các thiết kế kiến ​​trúc cài đặt xấu gây ra các vấn đề triển khai lặp đi lặp lại.

Nhìn chung MSI cung cấp một khung toàn diện, được tiêu chuẩn hóa cho trình cài đặt, bao gồm cả các tính năng và tùy chọn tích hợp và gỡ cài đặt để chạy im lặng với GUI được tiêu chuẩn hóa có thể được kích hoạt từ xa .

Các tính năng này tạo thành một sự cải tiến lớn so với các công nghệ cài đặt trước đó đã xử lý việc gỡ cài đặt và chạy im lặng một cách ngớ ngẩn - có lẽ là các tính năng quan trọng nhất để triển khai công ty cùng với quản lý gói từ xa đáng tin cậy thông qua Active Directory hoặc các công cụ quản trị từ xa chuyên dụng như Microsoft SCCM (trước đây là SMS), IBM Tivoli , CA Unicenter và tương tự.

Ai đó đã nhân đôi một phiên bản trước của câu trả lời này . Có lẽ đọc nhanh hơn?


Trình cài đặt kế thừa "Mùi triển khai"

MSI chủ động ngăn chặn mùi triển khai kế thừa theo thiết kế. Các chủ đề này sẽ được thảo luận trong các phần sau bên dưới, nhưng như một danh sách nhanh các vấn đề dễ nhận biết nhất với các trình cài đặt cũ và công nghệ triển khai cũ hơn là:

  • 1) đôi khi họ hạ cấp và ghi đè lên các tệp được chia sẻ và phiên bản mà ít quan tâm đến địa ngục dẫn đến kết quả
  • 2) thường không có thói quen gỡ cài đặt thích hợp được cung cấp cùng với trình cài đặt hoặc nó không hoàn thành đúng và đáng tin cậy - đặc biệt nếu chạy âm thầm. Đây là một vấn đề rất lớn đối với quản lý doanh nghiệp nhà nước
  • 3) cài đặt im lặng hiếm khi được hỗ trợ đúng cách. Độ tin cậy rất kém và người ta thường phải ghi lại quá trình cài đặt với các lựa chọn hộp thoại và điều này không giải quyết tốt các điều kiện bất ngờ như hộp thoại lỗi hoặc hộp thoại cảnh báo không được ghi lại trong lần chạy ban đầu
  • 4) trình cài đặt không lưu bản ghi về những gì đã được cài đặt và do đó không có cách nào tự động xác minh các tệp trên đĩa để kiểm tra xem chúng có còn là phiên bản được cài đặt ban đầu bởi trình cài đặt không
  • 5) chúng đặc trưng các tham số dòng lệnh không thể đoán trước, không đáng tin cậy và không chuẩn để thực thi cài đặt
  • 6) tuân theo dòng lệnh không chuẩn và thiếu tiêu chuẩn, rất khó để tùy chỉnh trình cài đặt với các giá trị cụ thể cần thiết cho việc triển khai của công ty theo cách đáng tin cậy và có thể dự đoán được
  • 7) người dùng bình thường không thể chạy các cài đặt này và người ta thường phải loay hoay với quyền quản trị tạm thời (sử dụng "chạy như" nếu đủ, hoặc đăng nhập với tư cách quản trị viên, cài đặt và sau đó đăng xuất - thế hệ đăng nhập và đăng nhập đầy đủ này đôi khi được yêu cầu để cài đặt hoàn tất)
  • 8) trình cài đặt setup.exe thường không trả về mã lỗi hoặc thành công thích hợp và đôi khi nó sẽ thoát ngay lập tức và khởi động một quá trình khác sẽ hoàn tất quá trình cài đặt khiến việc xác định cài đặt đã hoàn tất - đặc biệt là thông qua một đợt tập tin
  • 9) hầu hết các tệp setup.exe cho phép trích xuất các tệp, nhưng không phải theo kiểu đáng tin cậy, có thể dự đoán được - bạn thường phải mất rất nhiều thời gian để tìm đúng các công tắc để hoàn thành công việc
  • 10) ghi nhật ký nói chung là kém và khá khó hiểu trong một số công cụ. Gỡ lỗi với các tệp nhật ký hiếm khi tạo ra sự rõ ràng, nhưng đã giúp một chút
  • 11) không có sự minh bạch trong những gì trình cài đặt đang làm và không có hoặc không đáng tin cậy để hoàn tác các thay đổi sau khi cài đặt không thành công
  • 12) đã có không có cách nào tiêu chuẩn công nghiệp của việc triển khai các thành phần runtime chia sẻ cho dù họ đang hoạt động thành phần hệ thống, thành phần của bên thứ ba hoặc của riêng bạn

Danh sách này tiếp tục với nhiều lỗ hổng triển khai quan trọng và được công nhận khác . Rõ ràng trong thế giới triển khai của công ty, những vấn đề này xuất hiện thường xuyên nhất và nó đã dẫn đến việc " đóng gói lại ứng dụng " trong đó trình cài đặt kế thừa được ghi lại bằng các công nghệ quét đĩa và đăng ký để tạo tệp MSI tuân thủ tiêu chuẩn để triển khai đáng tin cậy.

Đóng gói lại ứng dụng là một công việc chuyên môn và thường mang lại các tệp MSI chất lượng tuyệt vời nếu được thực hiện đúng bởi những người có kiến ​​thức, nhưng không thể đóng gói lại tất cả các ứng dụng do logic đăng ký phức tạp phải được chạy tương tác để một số ứng dụng hoạt động.


Lợi ích MSI - Tóm tắt ngắn

Nói một cách dễ hiểu, những lợi ích thực sự quan trọng của MSI là (không theo thứ tự cụ thể nào):

  • 1) gỡ cài đặt luôn có sẵn cho mọi gói trừ khi nó bị vô hiệu hóa tích cực
  • 2) điều này giống với ghi nhật ký , rất tuyệt vời và được chuẩn hóa, mặc dù dài dòng (các công cụ như WiLogUtl.exe có thể được sử dụng để phân tích các tệp nhật ký)
  • 3) những gì một tập tin MSI làm là (bán) trong suốt hoặc "có thể kiểm tra" đối với hầu hết các phần. Ngoại lệ là các hành động tùy chỉnh - (xem phần minh bạch bên dưới)
  • 4) tùy chỉnh thiết lập được thực hiện theo cách chuẩn hóa ( biến đổi )
  • 5) không cần phải lộn xộn với quyền quản trị tạm thời vì cài đặt chạy được nâng cao thông qua quảng cáo Active Directory, chính sách nhóm hoặc quản trị từ xa. Một số bằng cấp ở đây. Cũng xem ảnh chụp màn hình này từ trình soạn thảo đối tượng chính sách nhóm.
  • 6) cài đặt / gỡ cài đặt im lặng thông qua các công cụ quản lý hoặc sử dụng msiexec.exe hoạt động tốt
  • 7) có hỗ trợ rollback đầy đủ cho các cài đặt không thành công. Nếu bạn cài đặt thủ công trên hộp, có một số bằng cấp bạn cần biết.
  • 8) tệp MSI cho vay cả kiểm tra và xác thực tính nhất quán và hợp lệ logic vì chúng tuân thủ lược đồ cơ sở dữ liệu ( xem ví dụ xác thực )
  • 9) cập nhật là các loại được tiêu chuẩn hóa, mặc dù phức tạp và thường dễ bị lỗi đối với các trình đóng gói thiếu kinh nghiệm
  • 10) các chiết xuất các tập tin từ msi là một tính năng built-in (kiểm tra bài viết liên quan cho một cái nhìn tổng quát tốt)
  • 11) dòng lệnh Windows Installer, msiexec.exe , có tính năng kiểm soát chi tiết rất tốt về cách thực hiện trình tự cài đặt và tất cả các tùy chọn hoạt động với tất cả các tệp MSI tuân thủ tiêu chuẩn (đặt mức ghi nhật ký, chạy âm thầm / tương tác / bán im lặng , thiết lập các tham số cài đặt, áp dụng các biến đổi, v.v ...).
  • 12) hợp nhất các mô-đun là cơ chế MSI để phân phối các tệp được chia sẻ với nhiều gói MSI. Nó là một mô-đun tiêu hao hoặc gói logic cài đặt có thể kết hợp với bất kỳ gói MSI nào trong thời gian biên dịch. Wix đã mở rộng và cải thiện khái niệm này với việc sử dụng Wix bao gồm các tệp - một khái niệm mà theo tôi là vượt trội so với các mô-đun hợp nhất - đặc biệt là đối với các tệp của riêng bạn (không phải là tệp OS)
  • 13) chính công cụ cài đặt windows có cơ chế ngăn chặn ghi đè các tập tin được phiên bản hoặc sửa đổi khi cài đặt. Điều này được kiểm soát bởi một logic thay thế tập tin khá phức tạp . Mặc dù hiệu quả và tốt, logic cuối cùng có thể là một vấn đề vì nhiều nhà phát triển phải đối mặt với vấn đề không thể ghi đè lên các tệp cấu hình đã sửa đổi của họ khi nâng cấp. Giải pháp cho những vấn đề này nói chung là những thay đổi nhỏ trong thiết kế ứng dụng để tránh các kiểu chống triển khai phổ biến - mặc dù đó là một cuộc thảo luận lớn của riêng nó.

Trong thế giới thực, tôi đã tìm thấy các khía cạnh ít thành công hơn bao gồm vá lỗi (rất phức tạp), MSI-GUI (tính năng đơn giản, khá phức tạp, thiếu tính linh hoạt), khả năng phục hồi (có thể gây khó khăn cho việc sửa lỗi lặp lại các vấn đề tự sửa chữa ) và độ phức tạp chung về việc xử lý công nghệ cho người mới bắt đầu (độ phức tạp cao của các hoạt động cơ bản đôi khi - ví dụ như nâng cấp, GUI và nhiều chi tiết tương tác gây ra kết quả không mong muốn, v.v ...). Tốc độ của quá trình cài đặt cũng bị chậm lại đáng kể do chi phí hoạt động của MSI tăng. Xem một số mẹo để cải thiện tốc độ cài đặt MSI .

Phần còn lại của văn bản đề cập đến một số khía cạnh của MSI chi tiết hơn.


Độ trong suốt (định dạng trình cài đặt mở)

Một tệp MSI về cơ bản là một cơ sở dữ liệu SQL-Server bị loại bỏ được lưu trữ dưới dạng tệp lưu trữ có cấu trúc COM - về cơ bản là một hệ thống tệp trong một tệp hoặc một tập hợp các luồng dữ liệu. Đây là loại tệp được sử dụng trong các tài liệu Microsoft Office và nó mang lại một định dạng chuẩn có thể được xem xétkiểm tra - một vấn đề lớn đối với các tập đoàn lớn.

Ngoại trừ các hành động tùy chỉnh được biên dịch, tệp MSI là một hộp màu trắng . Nếu thiết lập thay đổi một cái gì đó điên rồ, chẳng hạn như cài đặt mạng toàn hệ thống, bạn thực sự có thể thấy nó bằng các công cụ thích hợp . Ngoại lệ đáng chú ý là các hành động tùy chỉnh được biên dịch - đó là hộp đen . Yêu cầu logo của Windows yêu cầu các hành động tùy chỉnh phải được chú thích để giải thích những gì họ đang làm, nhưng điều này thường bị các nhà phát triển thiết lập bỏ qua. Hy vọng sự ra đời của Wix sẽ cải thiện điều này.

Để xác định những hành động tùy chỉnh được biên dịch như vậy thực sự làm theo nghĩa kỹ thuật, việc chụp thiết lập là cần thiết. Điều này hầu như không bao giờ được thực hiện trong kinh nghiệm của tôi. Thông thường hơn là liên hệ với nhà cung cấp để biết thông tin nếu phần mềm cần phê duyệt để triển khai cho công ty, và sau đó có thể chính ứng dụng đó ngăn cản việc sử dụng của nó và không chỉ là thiết lập.

Khả năng tùy biến (biến đổi)

Một MSI có thể được tùy chỉnh thông qua các biến đổi để phù hợp với nhu cầu và tiêu chuẩn của tổ chức trong khi vẫn cho phép khả năng tương tác với các bản cập nhật trình cài đặt của nhà cung cấp. Bạn không tự thay đổi trình cài đặt, bạn tạo tùy chỉnh của mình trong một tệp riêng, tổ chức cụ thể được gọi là biến đổi (tệp .mst) (một đoạn cơ sở dữ liệu hoặc thay đổi giao dịch nếu bạn muốn). Bạn có thể tự do vô hiệu hóa các hành động tùy chỉnh và nói chung là thay đổi, ghi đè hoặc vô hiệu hóa mọi thứ trong trình cài đặt và thậm chí bạn có thể thêm những thứ mới, bao gồm các tệp. Các tệp biến đổi đôi khi cũng được sử dụng để bản địa hóa một tệp MSI sang các ngôn ngữ khác nhau. Một số biến đổi có thể được áp dụng cho một MSI duy nhất, đây là một mẫu với các đường dẫn bị cắt ngắn :

msiexec.exe /I "My.msi" /QN /L*V "C:\My.log" TRANSFORMS="C:\1031.mst;C:\My.mst"

Giải thích thông số nhanh:

/QN = run completely silently
/L*V "C:\My.log"= verbose logging
TRANSFORMS="C:\1031.mst;C:\My.mst" = Apply transforms 1031.mst and My.mst.

Quản lý và báo cáo

Windows Installer duy trì cơ sở dữ liệu toàn diện về tất cả các mục mà sản phẩm đã cài đặt trong sổ đăng ký ( HKEY_CLASSES_ROOT \ Installer - không bao giờ thay đổi trực tiếp bất cứ điều gì ở đây! Điều đó cũng đúng với các chuyên gia).

Bạn có thể xác định một cách đáng tin cậy nếu một sản phẩm được cài đặt, những tính năng nào đã được cài đặt và phiên bản tệp nào đã được cài đặt. Ngoài ra, bạn có thể nhận được một danh sách bất kỳ bản vá nào đã được áp dụng cho sản phẩm cơ sở, nếu có. Bạn có thể truy cập cơ sở dữ liệu này thông qua API hỗ trợ Win32, COM hoặc .NET bằng nhiều công cụ quản trị, cấu hình và quản trị tập lệnh như Microsoft SCCM , IBM Tivoli , CA Unicenter, v.v.

Bảo mật (quyền nâng cao tạm thời)

MSI cũng bao gồm các nguyên tắc "quyền nâng cao" cho phép người dùng bị hạn chế kích hoạt cài đặt sản phẩm yêu cầu quyền quản trị viên để cài đặt. Đây là một phần của " tính năng quảng cáo " cho phép quản trị viên cung cấp trình cài đặt cho người dùng mà không cần cài đặt chúng trên tất cả các máy trạm. Bản thân trình cài đặt phải được cấp phép chính xác trên một số tài khoản cốt lõi để khái niệm quyền nâng cao này hoạt động chính xác. Người dùng có thể tự kích hoạt cài đặt sản phẩm hoặc cài đặt có thể được kiểm soát bởi hệ thống triển khai chuyên dụng như SCCM, Tivoli, Unicenter (thông thường các công ty lớn hơn). Không cần phải lộn xộn với quyền quản trị tạm thời để mọi thứ hoạt động đó thường là trường hợp với trình cài đặt cũ.

Cơ sở dữ liệu cài đặt toàn diện cũng đảm bảo rằng bạn có tổng quan đầy đủ về các bản vá đã cài đặt và do đó có khả năng phát hiện các lỗ hổng bảo mật thông qua các công cụ quản trị và tự động hóa.

Thẩm định

Các tệp MSI có thể được kiểm tra bằng các quy tắc xác thực để đảm bảo nó tuân thủ một số quy tắc nhất quán nội bộ (gọi là ICE). Các tập đoàn có thể tạo séc ICE của riêng họ để thực thi các quy tắc và yêu cầu đặc biệt của công ty. Điều này giúp rất nhiều với QA. Lý do xác thực là có thể là do bản chất tự tham chiếu của cơ sở dữ liệu quan hệ và lược đồ cơ sở dữ liệu liên quan. Cơ sở dữ liệu phải nhất quán nội bộ và tuân thủ lược đồ riêng liên quan đến khóa ngoại, kiểu dữ liệu, độ rộng trường, phiên bản lược đồ, v.v ... Xác thực cũng vượt xa điều này và có khả năng phát hiện lỗi và lỗi logic chính hãng trong gói , không chỉ định dạng và gõ sai sót. Ví dụ: nó có thể phát hiện các tệp hoặc loại tệp đang được triển khai đến các đích đích sai.

Khả năng phục hồi (Tự sửa chữa)

Các cài đặt quản trị tính năng của Windows cài đặt cung cấp một cách tiêu chuẩn để trích xuất các tập tin nguồn từ một MSI ( ở đây là thêm một số thông tin về chủ đề này ). Các tệp nguồn này sau đó có thể được chia sẻ và có sẵn cho tất cả các máy trạm để cài đặt. Điều này đảm bảo sửa chữa, gỡ cài đặt và sửa đổi các hoạt động hoàn tất mà không yêu cầu phương tiện cài đặt trên CD hoặc tương tự. Điều này đặc biệt quan trọng để vá và cập nhật các hoạt động có thể yêu cầu quyền truy cập vào các tệp nguồn phiên bản cũ trong các trường hợp đặc biệt.

Cũng có những vấn đề phổ biến với tính năng phục hồi này. Hầu hết các quản trị viên có kinh nghiệm máy móc với chu kỳ tự sửa chữa theo chu kỳ dường như không bao giờ dừng lại. Theo liên kết cho một danh sách dài các nguyên nhân của vấn đề này. Và một lần nữa, đây là một phiên bản ngắn hơn có thể dễ đọc hơn.

Phục hồi

Việc cài đặt tệp MSI thường sẽ kích hoạt việc tạo điểm khôi phục . Hơn nữa, tất cả các tệp và mục đăng ký được thay thế hoặc ghi đè trong quá trình cài đặt sẽ được lưu và khôi phục nếu quá trình cài đặt không hoàn thành, chặn mọi thay đổi được thực hiện trong các hành động tùy chỉnh.

Các hành động tùy chỉnh phải thực hiện hỗ trợ rollback của riêng họ để tuân thủ logo Windows. Điều này thường bị bỏ qua, nhưng liên quan đến việc tạo hành động tùy chỉnh thứ hai để hoàn tác các thay đổi được thực hiện bởi hành động tùy chỉnh chính.

Rollback đảm bảo rằng máy trạm được để ở trạng thái ổn định ngay cả khi cài đặt không thành công. Tập lệnh rollback thực tế được lưu trữ trong một thư mục ẩn trực tiếp trên ổ đĩa hệ thống - thường là C: \ Config.MSI và nó chứa các tệp có phần mở rộng .RBS và .RBF - Tập tin Rollback Script . Như bạn có thể mong đợi các tệp MSI được thiết kế kém có thể vi phạm các tính năng tích hợp sẵn của Windows tại đây, hãy xem bài đăng khác của tôi trong chuỗi này để biết thêm chi tiết.

Có nhiều cách để vô hiệu hóa rollback và tăng tốc độ cài đặt. Nói chung không được khuyến nghị, nhưng đây là chi tiết về thuộc tính MSIFASTINSTALL và DISABLEROLLBACK . Đây là một tính năng phức tạp, nhưng đây là một tổng quan nhanh chóng .

Vá và cập nhật

Mặc dù rất phức tạp, việc vá lỗi trong trình cài đặt Windows được quản lý và đăng ký đầy đủ trên hệ thống để có thể xác định trạng thái bảo mật hệ thống bằng cách kiểm tra những gì đã được cài đặt. Các bản cập nhật được chuẩn hóa cho một vài biến thể cơ bản và điều này cho phép các bản cập nhật được thực hiện với mức độ chắc chắn cao hơn với điều kiện bạn có thể xử lý sự phức tạp liên quan. Hệ thống triển khai sẽ có thể báo cáo những cập nhật thất bại và tại sao.

Trong chế độ xem chủ quan, vá lỗi hoạt động tốt cho 2 mục đích sử dụng cơ bản : 1 ) hotfix nhỏ cho các sản phẩm được giao và 2 ) vá một sản phẩm đã cài đặt để khắc phục trình tự gỡ cài đặt bị lỗi nhằm ngăn chặn việc gỡ cài đặt sản phẩm.

Một bản vá chỉ là một cơ chế phân phối cho một bản cập nhật đã hoạt động . Vì vậy, nó chỉ là một container phức tạpdễ bị lỗi hơn so với thiết lập ban đầu. Nguyên tắc số một cho một bản vá là nó phải nhỏ hơn MSI gốc hoặc không có lý do rõ ràng nào để cung cấp một bản vá. Một bản vá có thể nhận được rất lớn một cách nhanh chóng nếu nó nhắm mục tiêu nhiều phiên bản sản phẩm.

Ghi nhật ký (thực sự dài dòng)

Windows Installer cung cấp một tính năng ghi nhật ký được tiêu chuẩn hóa , vượt trội hơn rất nhiều so với các phiên bản trước, mặc dù gần như quá dài dòng. Các tệp nhật ký có thể được giải mã bằng cách sử dụng các máy phân tích nhật kýcác mức nhật ký tùy chỉnh có thể được sử dụng để loại bỏ việc tạo các tệp nhật ký quá lớn với thông tin không cần thiết. Đối với mục đích gỡ lỗi, đăng nhập verbose là vô cùng hữu ích. Xem blog của Rob Mensching để biết cách thủ công tốt để đọc tệp nhật ký MSI (về cơ bản bạn tìm kiếm " giá trị 3 " trong tệp nhật ký). Đây là một dòng lệnh mẫu thực hiện ghi nhật ký chi tiết:

msiexec.exe /I "C:\Installer.msi" /QN /L*V "C:\msilog.log"

Bài viết này của Robert Macdonald từ Nhóm cài đặt Windows rất được khuyến khích như một cái nhìn thực tế về ghi nhật ký MSI: Cách diễn giải Nhật ký trình cài đặt Windows .


Phần kết luận

Không phải mọi thứ đều tốt về Windows Installer . Sự phức tạp của nó đôi khi có thể gây trở ngại , nhưng đối với các tập đoàn lớn, các tệp MSI vượt trội hơn rất nhiều so với bất kỳ hình thức triển khai nào khác khi bạn tính đến danh sách các lợi ích ở trên.

Mô hình trình cài đặt mới (câu lệnh SQL lớn)

Để hiểu " mô hình " mới, điều quan trọng là phải hiểu rằng MSI được dự định là một mô tả khai báo về những gì sẽ xảy ra trên hệ thống đích, chứ không phải là một chuỗi các sự kiện cố định. Tôi cho rằng bạn có thể nghĩ về nó như một câu lệnh SQL khổng lồ . Ví dụ: bạn khai báo các mục bạn muốn thêm hoặc sửa đổi vào tệp INI. Khi cài đặt chạy các thay đổi được theo dõi và khôi phục có sẵn để thay đổi có thể được hoàn nguyên nếu cài đặt thất bại. Điều này thực sự hoạt động như " automagic ", và đáng tin cậy khi được thực hiện đúng.

Hành động tùy chỉnh (nghi phạm thông thường)

Thật đau đầu cho các nhà phát triển MSI có kinh nghiệm khi thấy mọi người dựa vào các hành động tùy chỉnh phức tạp, không đáng tin cậy cho chức năng được triển khai tốt hơn với các tính năng MSI tích hợp. Một phần đáng kể của tất cả các lỗi MSI và các sự cố khôi phục được gây ra bởi các hành động tùy chỉnh sai lầm và hầu hết các lỗi khác là do sử dụng sai thiết kế MSI (xem câu trả lời riêng cho danh sách các lỗi MSI phổ biến).

Ngoài các tính năng MSI tích hợp, ngày càng có nhiều chức năng tùy chỉnh hơn thông qua khung mới như Wix - cách XML để biên dịch các tệp MSI, do đó, ngày càng ít cần logic hành động tùy chỉnh phức tạp cho hầu hết các hoạt động.

MSI có tính năng hỗ trợ đầy đủ để xử lý việc hợp nhất các cài đặt tệp ini, phông chữ, biến môi trường, khóa đăng ký, thông tin COM, phím tắt, tiện ích mở rộng tệp, điều kiện khởi chạy, cài đặt GAC, ODBC, v.v ...

WIX đi xa hơn với sự hỗ trợ cho các tính năng rất tiên tiến như tiện ích mở rộng máy chủ SQL, cài đặt và cấu hình IIS, bộ đếm hiệu suất, kiểm tra DirectX và các tác vụ liên quan đến trò chơi khác, tạo hình ảnh gốc .NET, COM +, trình điều khiển, quy tắc tường lửa, tiện ích mở rộng PowerShell, đóng ứng dụng, quản lý người dùng, nhóm, chia sẻ và nhiều hơn nữa. Một số liên quan để giải quyết, nhưng đáng tin cậy hơn nhiều so với hành động tùy chỉnh của riêng bạn.

Tránh các hành động tùy chỉnh bằng mọi giá nếu có thể

Để cố gắng đặt nó trong quan điểm: các built-incác giải pháp làm sẵn được thực hiện bởi các chuyên gia triển khai tốt nhất có thể , và chúng được thử nghiệm bởi hàng ngàn, hàng chục ngàn hoặc thậm chí hàng triệu người dùng (đối với built-in nội dung trong MSI Chính nó). Bạn có thực sự nghĩ rằng bạn có thể làm tốt hơn các hành động tùy chỉnh của riêng bạn? Sử dụng một hành động tùy chỉnh sẽ là một sự kiện hiếm gặp và cần phải đạt được điều gì đó độc đáo cho sản phẩm bạn cài đặt . Và bạn cũng phải viết hỗ trợ rollback thích hợp, điều này khá liên quan.

Viết một hành động tùy chỉnh hầu như luôn luôn là một sai lầm , nhưng có những trường hợp chính hãng khi bạn thực sự cần sự linh hoạt là tốt. Như mọi khi, điều quan trọng là chọn các trận đánh của bạn tốt. Nó có thể là một nhiệm vụ thú vị lúc đầu, nhưng bạn có thể sẽ phải đối mặt với nhiều vấn đề bất ngờ và lãng phí rất nhiều thời gian tốn kém. Tôi có ý này rất nghiêm túc. Tôi đã tự viết một bộ các hành động tùy chỉnh C ++ cho công ty sử dụng (để loại bỏ các hành động tùy chỉnh VBScript dễ bị lỗi) - đó không phải là đi bộ trong công viên, và mặc dù việc mã hóa có thể không khó khăn nhất trên thế giới, việc gỡ lỗi và kiểm tra và hookup vào một tập tin MSI thực tế là không có gì liên quan. Đôi khi nghiên cứu những tùy chọn làm sẵn có sẵn có thể sẽ giúp bạn tiết kiệm hàng tuần công việc phát triển và mang lại độ tin cậy triển khai lớn hơn nhiều.

Sử dụng Trình tự khởi chạy ứng dụng

Một điểm rất quan trọng là rất nhiều cấu hình ứng dụng sẽ xảy ra khi khởi chạy ứng dụng khi bạn có bối cảnh thời gian chạy dự đoán và xử lý lỗi tốt, và không phải trong thiết lập chỉ chạy một lần và có tính năng mạo danh , giải trình tự , điều hòathời gian chạy rất phức tạp phức tạp .

Thiết lập của bạn không nên cấu hình ứng dụng, nó nên chuẩn bị cho ứng dụng cấu hình trong lần khởi chạy đầu tiên . Cụ thể, thiết lập của bạn nên viết tất cả các cài đặt yêu cầu quyền nâng cao - ghi vào HKLM, đăng ký dịch vụ, cài đặt theo đường dẫn trên mỗi máy và bất kỳ điều gì mà ứng dụng không thể tự viết bằng quyền người dùng thông thường.

Nếu bạn là nhà phát triển thiết lập, bạn nên đề nghị tham gia mã hóa trình tự khởi chạy ứng dụng thay vì viết các hành động tùy chỉnh thiết lập . Nếu không có gì khác, để tránh trông giống như bạn đang cố gắng "vượt qua" cho người khác. Trong trình tự khởi chạy này, bạn có thể viết mã đáng tin cậy và có thể kiểm tra hơn, dễ dàng hơn để nhận trợ giúp từ nhân viên QA để kiểm tra (họ thường không hiểu thử nghiệm triển khai cũng như thử nghiệm ứng dụng).

Thiết lập độ phức tạp

Cốt lõi của sự phức tạp thiết lập xoay quanh thực tế là các lỗi được tích lũy (bạn đang quản lý quá trình phân phối, không chỉ là biên dịch lại nhanh), các lỗi rất khó gỡ lỗi (không có quyền truy cập vào các hệ thống xảy ra lỗi) và hệ thống đích trạng thái khác nhau về mọi cách có thể tưởng tượng . Vui lòng xem câu trả lời này để thảo luận kỹ hơn về sự phức tạp này và cách các hệ thống mục tiêu có thể cảnh giác theo một số cách gây sốc: Windows Installer và tạo WiX, và Độ phức tạp của Triển khai (xem phía dưới).

WiX (giải pháp MSI tốt nhất cho một số mục đích)

Đọc phần giới thiệu nhanh về WiX này để biết mô tả về cách dựa trên XML mới để biên dịch các tệp MSI. Các tệp nguồn dựa trên văn bản cung cấp kiểm soát nguồn tốt hơn nhiều so với trước đây. Đây là một bộ công cụ mã nguồn mở miễn phí rất được khuyến khích .

Lưu ý : Xem các phần khác trong luồng để biết nhanh các vấn đề thiết kế phổ biến với các tệp MSI - nó không đầy đủ, nhưng đáng để đọc. Tôi không muốn thêm câu trả lời này vì nó không liên quan 100%, nhưng đối với thế giới thực, đây là một chủ đề quan trọng.


Một số thông tin cốt lõi của MSI cho quản trị viên hệ thống:

(tha thứ cho "khuyến mãi" không biết xấu hổ - đó là để dễ dàng truy cập và truy xuất)

Đây chỉ là một vài liên kết đến các chủ đề có thể hữu ích cho các quản trị viên hệ thống trong nỗ lực kiểm soát việc triển khai trên mạng của họ:

Các chủ đề hướng dẫn đặc biệt:

Chủ đề khái niệm / Thực hành tốt nhất:


24

Câu trả lời này là rất nhiều công việc trong tiến trình và một phác thảo thô. Bổ sung, câu hỏi và cập nhật chào mừng. Danh sách này là không toàn diện. Thêm một bình luận với thông tin về các gói rắc rối.


Các vấn đề điển hình và lỗi thiết kế đã thấy trong các gói MSI

Tôi cũng phải cảnh báo rằng rất nhiều tệp MSI chứa lỗi, đôi khi là nghiêm trọng, nhưng trình đóng gói ứng dụng được đào tạo sẽ có thể phát hiện ra điều này và trong hầu hết các trường hợp loại bỏ sự cố. Tôi đang thêm câu này dưới dạng một câu trả lời riêng vì về cơ bản nó trả lời một câu hỏi khác, nhưng tôi cảm thấy nó có liên quan trong cùng một chủ đề.

Các chi tiết kỹ thuật liên quan đến MSI rất phức tạp . Ở cấp độ cơ bản, đó là về việc phân tách các tệp và cài đặt đăng ký của bạn thành các thành phần (cài đặt nguyên tử) và các tính năng (các phần ứng dụng có thể lựa chọn của người dùng để cài đặt, ví dụ như tính năng từ điển). Có một số quy tắc thực hành tốt nhất để phân tách các thành phần và lỗi trong các tệp MSI ở đây rất nhiều. Những lỗi này thường được xử lý bằng cách tiêu chuẩn hóa việc sử dụng "các nâng cấp lớn".

Việc cài đặt thực tế được thực hiện trong một số trình tự cài đặt, một số có quyền nâng cao . Tất cả những điều này được định nghĩa trong các bảng cơ sở dữ liệu và đây là nơi MSI cực kỳ phức tạp để hiểu và giải quyết. Trải đều trong các trình tự cài đặt là các hành động tiêu chuẩn và tùy chỉnh. Các hành động tiêu chuẩn được Microsoft thiết kế và cần diễn ra (trình tự đôi khi có thể được sửa đổi). Các hành động tùy chỉnh có sẵn cho các nhà cung cấp để thực hiện logic tùy chỉnh không được bao phủ bởi chính MSI. Đây có thể là trong kịch bản hoặc hình thức biên dịch. Các hành động tùy chỉnh có thể ngay lập tức (chạy cùng một lúc, không nên thay đổi hệ thống nhưng thường được thực hiện) hoặc hoãn lại (được viết thành tập lệnh thực thi sau đó được thực hiện như một giao dịch và do đó hỗ trợ khôi phục).

Các lỗi điển hình trong MSI là (không theo thứ tự cụ thể - và được trình bày như một mớ hỗn độn thực sự):

  • lỗi tạo thành phần (không tuân theo thực tiễn tốt nhất). Điều này có thể gây ra sự cố khi vá và nâng cấp với các triệu chứng bí ẩn như thiếu tệp và cài đặt hoặc bản vá lỗi với các lỗi vô nghĩa. Để đơn giản hóa, người ta nên sử dụng một tệp cho mỗi thành phần trừ khi số lượng tệp là rất lớn.
  • nâng cấp các vấn đề liên quan đến dữ liệu người dùng bị ghi đè hoặc đặt lại. Xem thêm chi tiết dưới đây.
  • lập lịch không chính xác cho các hành động tùy chỉnh bên ngoài "phần được giao dịch" của trình tự cài đặt hoặc hành động tùy chỉnh của loại sai được đặt không chính xác. Điều này thường khiến các hành động thất bại (không có quyền nâng cao) khi chạy từ xa thông qua các hệ thống triển khai và khôi phục lại bị tê liệt một cách hiệu quả vì chỉ các hành động được giao dịch mới được khôi phục. Giao dịch cài đặt Windows (nghĩ rằng cam kết giao dịch cơ sở dữ liệu) chạy giữa các hành động tiêu chuẩn InstallInitializeInstallFinalize trong chuỗi cài đặt chính và chạy với các quyền nâng cao . Tất cả các thay đổi đối với hệ thống sẽ diễn ra trong giao dịch này - mọi thứ khác đều có lỗi (nhưng không may là khá phổ biến).
  • sử dụng các hành động tùy chỉnh chế độ ngay lập tức để thực hiện các thay đổi cho hệ thống bên ngoài trình tự cài đặt được giao dịch . Điều này phá vỡ hỗ trợ rollback và thường sẽ gây ra lỗi bảo mật do các hành động tùy chỉnh chế độ ngay lập tức không chạy với quyền người dùng nâng cao bất kể chúng được đặt ở đâu trong trình tự cài đặt.
  • thiết kế sai lầm gây ra chu kỳ tự sửa chữa lặp đi lặp lại xảy ra không có lý do rõ ràng. Đây là một bài viết khác về chủ đề này, từ installsite.org
  • các hành động tùy chỉnh không tuân theo việc triệt tiêu GUI trong chế độ cài đặt không giám sát có thể hiển thị các hộp thoại phương thức khiến việc triển khai bị lỗi hoàn toàn khi chạy âm thầm. Vấn đề này cùng với sự khác biệt chung giữa chế độ im lặng và chế độ tương tác được mô tả chi tiết hơn ở đây (hơi dài dòng và dài dòng): Gỡ cài đặt khỏi Bảng điều khiển khác với Xóa khỏi .msi
  • một số hành động tùy chỉnh trong các gói được ủy quyền sai chỉ được chèn trong chuỗi giao diện người dùng . Điều này khiến chúng không được chạy trong chế độ cài đặt im lặng. Điều này là nghiêm trọng đối với việc triển khai của công ty vì cài đặt im lặng được sử dụng ở đây gần như độc quyền. Vấn đề này cũng có thể ảnh hưởng đến việc gỡ cài đặt, nghĩa là bạn có thể phải chạy gỡ cài đặt một cách tương tác để gỡ cài đặt để đảm bảo tất cả các hành động tùy chỉnh dọn dẹp chạy. Một lần nữa, hãy xem liên kết trong dấu đầu dòng trước để biết mô tả dài hơn về các cấp độ giao diện người dùng.
  • thiết lập chứa các tệp không được dự định triển khai ở vị trí chúng đang cài đặt. Thông thường các tệp hệ thống nên được cài đặt cạnh nhau trong thư mục lắp ráp winxs.
  • tốc độ cài đặt chậm là một "vấn đề" khác mà nhiều báo cáo với MSI. Dưới đây là một số lời khuyên về chủ đề này . Nhìn chung, Windows Installer có khá nhiều chi phí do yêu cầu đăng ký lớn trong sổ đăng ký cho những gì đang được cài đặt.
  • ghi đè thông tin tùy chỉnh hoặc chia sẻ tệp dữ liệu . Điều này có thể xảy ra nếu một tệp INI được cài đặt thông qua bảng Tệp chứ không phải bảng IniFile. Trong trường hợp sau, nó được coi là "giao dịch thay đổi" trong trường hợp trước đó là thao tác thay thế tệp, thường là sai trừ khi tệp INI của bạn có định dạng không chuẩn hoặc phần nhận xét lớn mà bạn muốn triển khai với tệp của mình (nhất định Những công cụ phát triển).
  • các quy tắc phức tạp để ghi đè tệp có thể khiến các tệp bị ghi đè ngoài ý muốn hoặc hoàn toàn không được cập nhật - đây là một vấn đề cổ điển của MSI. Kiểm tra bài viết này để biết cách bạn có thể buộc ghi đè lên một tệp không nâng cấp . Các quy tắc có thể được điều chỉnh một chút bởi các cài đặt tùy chỉnh cho thuộc tính REINSTALLMODE được đặt ở cấp dòng lệnh msiexec.exe (ghi đè lên các phiên bản cũ hơn, ghi đè lên các phiên bản bằng nhau, ghi đè bất kỳ phiên bản nào, v.v.) và chúng hoạt động khác nhau đối với các tệp dữ liệu và các tệp được phiên bản. Chi tiết trong SDK . Hiểu điều này là rất quan trọng, và nó là một thiết kế thường cau mày ngay cả khi hiểu.
  • tự đăng ký tệp COM trong khi cài đặt có thể kích hoạt cảnh báo bảo mật hoặc gây ra sự cố theo nhiều cách khác nhau. Kiểm tra bài viết này: Tự đăng ký được coi là có hại .
  • một biến thể của vấn đề thay thế tệp là trường hợp khi một bản nâng cấp lớn (gỡ cài đặt và cài đặt lại sản phẩm) gỡ cài đặt các tệp đã sửa đổi và cài đặt lại các phiên bản mặc định. Trong những trường hợp này , nội dung có vẻ được hoàn nguyên hoặc ghi đè khi thực tế nó được gỡ cài đặt trước và sau đó được cài đặt lại.
  • các dịch vụ chạy với thông tin người dùng tùy chỉnh có thể mất thông tin đăng nhập trong các tình huống nâng cấp chính cũng như có tệp cài đặt (dường như) trở lại mặc định (chúng thực sự được gỡ cài đặt và cài đặt lại). Chỉ dành cho hồ sơ: theo ý kiến ​​của tôi, các dịch vụ chạy với thông tin người dùng là một lỗ hổng thiết kế ở nơi đầu tiên.
  • thuộc tính công cộng không được chuyển đúng từ máy khách sang quy trình máy chủ ngăn các hành động tùy chỉnh hoàn thành như mong đợi. Điều này liên quan đến việc cập nhật thuộc tính SecureCustomActionProperIES.
  • Một số ứng dụng không thể chạy đúng cho người dùng khác ngoài ứng dụng đã cài đặt thiết lập ban đầu. Đây là một lỗi thiết kế nghiêm trọng, nhưng nhìn chung có thể được sửa chữa bởi các trình đóng gói ứng dụng có kinh nghiệm bằng cách tự phục hồi hoặc ActiveSetup để thêm các khóa đăng ký HKCUcác tệp userprofile . Đây là một chủ đề khá phức tạp và có thể cần một chút nghệ thuật đen để làm việc. Đối với bản ghi: giải pháp thực sự, theo tôi, là thay đổi chính ứng dụng để có thể khởi tạo tất cả các cài đặt theo người dùng dựa trên cài đặt mặc định và các mẫu được sao chép từ vị trí trên mỗi máy hoặc dựa trên mặc định của ứng dụng (từ mã nguồn).
  • Một số tệp MSI làm rối loạn bảo mật cho các tệp đã cài đặt bằng cách đặt quyền đọc / ghi đầy đủ cho những người không phải là quản trị viên ở đây, ở đó và ở mọi nơi. Những lần khác, ứng dụng ngừng hoạt động trên các phiên bản Windows mới hơn do thiếu quyền. Việc đóng gói ứng dụng phải đối mặt với phân tích về nhu cầu cấp phép tùy chỉnh của ứng dụng khá thường xuyên. Thông thường, một số quyền hạn bổ sung được yêu cầu trong HKLM hoặc ở đâu đó trong% ProgramFiles%
  • Một số thiết lập Cài đặt trở lại trong ngày sẽ cố gắng kết nối với Internet trong khi cài đặt. Điều này thật kinh khủng đối với các kịch bản triển khai của công ty nơi việc triển khai được kiểm soát chặt chẽ và trình cài đặt sẽ không bao giờ được phép tải xuống nội dung mới trực tiếp từ Internet.
  • Một vấn đề mạng khác là khi các thiết lập cố gắng hiển thị GUI nơi mọi người nhập dữ liệu được xác thực qua Internet khi họ cài đặt hoặc chỉ để hiển thị nội dung trực tiếp từ trang web của họ. Đây thường là địa chỉ email, thông tin liên lạc, khóa giấy phép và những thứ như vậy. Kết nối có thể thất bại hoàn toàn vì nhiều lý do, thường là do thiếu cấu hình proxy trong môi trường công ty (không có kết nối trực tiếp với Internet, tất cả lưu lượng truy cập Internet được chuyển qua một máy chủ bộ đệm cụ thể và mỗi quy trình cần cung cấp thông tin đăng nhập để vượt qua tường lửa) . Dưới đây là một bài viết về sự nguy hiểm của việc xác nhận giấy phép thông qua thiết lập .
  • Cài đặt được sử dụng để cài đặt thời gian chạy cho ngôn ngữ Cài đặt . Đây cài đặt điều kiện tiên quyết nhìn chung đã được đưa vào setup.exe, và đó là một nguồn huyền thoại của các vấn đề . Có nhiều phiên bản, một số không tương thích và một số lỗi thời gian chạy được sử dụng để xảy ra. Vì phiên bản 12 (hoặc ở đâu đó), thời gian chạy này hiện đã được cài đặt một cách đáng tin cậy và nó đang được biên dịch thành hộp cát gốc hoặc đang chạy (tôi không chắc chắn cái này hay cái kia - có thể là hộp cát) theo cách đáng tin cậy. Các thiết lập cũ hơn có thể hiển thị vấn đề triển khai này. Có một trang web hỗ trợ kế thừa từ Cài đặt cho các vấn đề như: http://consumer.installshield.com/common.asp
  • Một số thiết lập có thể hiển thị hành vi cài đặt thất thường hoặc lỗi không liên tục khi chạy trên các máy được thiết lập cho các ngôn ngữ khác với tiếng Anh hoặc ngay cả khi bạn chạy các phiên bản cài đặt (đã dịch) cục bộ trên máy tiếng Anh. Đây có thể là lỗi thời gian chạy hoàn toàn hoặc các trường hợp khi hộp thoại được bản địa hóa có tính năng cắt văn bản hoặc định dạng sai hoặc dịch sai hoặc nhiều loại lỗi khác liên quan đến bản địa hóa ngôn ngữ- toàn bộ lĩnh vực chuyên môn của riêng mình (dịch văn bản bằng hình ảnh, tự dịch phần mềm, dịch tài liệu tiếp thị, giải quyết các yêu cầu hỗ trợ quốc tế, thích ứng với các cài đặt ngôn ngữ trong HĐH, v.v.). Một số ngôn ngữ cần toàn bộ ứng dụng được thay đổi để giải thích cho đặc thù ngôn ngữ của chúng - các vấn đề điển hình là macro chuỗi và cài đặt trang mã, sau này ít gặp vấn đề hơn với việc giới thiệu Unicode. Xem ảnh chụp màn hình mẫu từ một công cụ dịch thuật .
  • Hầu như tất cả các thiết lập đều thất bại một số thử nghiệm xác thực tích hợp sẵn có để kiểm tra chất lượng của các gói MSI. Xem bài viết này cho một ví dụ thực tế của xác nhận.
  • Đôi khi các nâng cấp không thành công cho MSI do thực tế là chỉ có 3 chữ số của số phiên bản của MSI thực sự được kiểm tra trong các lần quét nâng cấp lớn.
  • Việc cài đặt các tệp INI là một tính năng tích hợp của Windows Installer. Các mục có thể được thêm, xóa, sáp nhập hoặc xử lý theo bất kỳ yêu cầu nào. Tuy nhiên, thông thường các tệp INI được cài đặt dưới dạng tệp thay vì các giá trị được phân đoạn. Điều này có thể khiến tệp INI bị ghi đè trong khi cài đặt lại, thay vì được cập nhật. Một vấn đề MSI rất phổ biến.
  • Vấn đề trên cũng là trường hợp của các ứng dụng .NET và các tệp Cấu hình của chúng. Trong trường hợp này, MSI KHÔNG có cách tích hợp để cập nhật nội dung một cách chi tiết và bạn cần mã hóa bản cập nhật thông qua hành động tùy chỉnh hoặc thay thế toàn bộ tệp khi cài đặt. Wix có thể có các tính năng mới cho việc này, nhưng công cụ Windows Installer không tích hợp sẵn.

Có một số lỗi tinh vi hơn và một số vấn đề lớn hơn, điển hình mà tôi sẽ quên.

Kiểm tra bài viết Thực hành tốt nhất của Windows Installer từ MSDN .


5

Sử dụng MSI cũng giúp việc vá lỗi (tệp MSP) và nâng cấp dễ dàng hơn. MSI sử dụng khái niệm mã Sản phẩm và Nâng cấp độc đáo giúp toàn bộ quá trình dễ dàng hơn.

Một số hệ thống triển khai (CA Unicenter Software Delivery là một ví dụ) cũng có thể hiểu MSI theo cách đặc biệt, cho phép chúng tích hợp tốt hơn nhiều vào hệ thống triển khai. Ví dụ: bạn có thể đưa MSI vào thư viện phần mềm của hệ thống triển khai và nó sẽ tự động phát hiện các tính năng khác nhau trong sản phẩm và tự động cho phép các hành động tùy chỉnh chi tiết hơn nhiều (Cài đặt cục bộ, Xác minh, Sửa chữa, v.v.) và ghi nhật ký.

Tự phục hồi / sửa chữa cũng là một điểm cộng lớn cho MSI.


2

Ngoài ra, hãy xem Windows Installer XML , "bộ công cụ xây dựng các gói cài đặt Windows từ mã nguồn XML. Bộ công cụ hỗ trợ môi trường dòng lệnh mà các nhà phát triển có thể tích hợp vào các quy trình xây dựng của họ để xây dựng các gói thiết lập MSI và MSM." Điều này được MS sử dụng để chuẩn bị một số gói phần mềm chính của nó.


0

bạn có thể thực hiện các phép biến đổi - về lý thuyết bạn có thể tùy chỉnh rất nhiều, nếu chương trình được nhà cung cấp đóng gói đúng cách, bạn có thể thực hiện triển khai hoàn toàn tự động mà không cần bất kỳ tương tác nào với người dùng cuối - rất hữu ích khi bạn muốn chuẩn hóa môi trường windows của mình và có nhiều hơn thế của máy tính.

để xem những gì mọi người làm với msis [hoặc triển khai không giám sát] truy cập ví dụ trang web này và các diễn đàn của nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.