Điều này có thể hơi rant hơn câu trả lời nhưng ở đây nó đi.
Nếu có một thứ bị hỏng nặng với phần mềm máy khách Windows thì đó là việc triển khai ứng dụng.
Kinh nghiệm của tôi xuất phát từ làm việc trên NovaMind - Mặc dù tôi đã trải qua tuần trong những năm qua về các vấn đề cài đặt, Tôi không phải là một chuyên gia trong công nghệ thiết lập và tôi cố gắng tập trung vào sản phẩm thực tế của chúng tôi bất cứ khi nào có thể. Chúng tôi đã sử dụng InnoSetup, Visual Studio Setup Project 2008/2010 và cuối cùng chúng tôi đã chuyển sang phương pháp WiX + Tools.
Làm thế nào để bạn cài đặt một ứng dụng hiện nay?
Ứng dụng web: Nhập URL trong trình duyệt để truy cập ứng dụng web.
Mac: Kéo tệp đã tải xuống (tương tự cho x64 và x86) vào biểu tượng Ứng dụng trên máy Mac. Làm xong.
Windows: Tải xuống tệp phù hợp (người dùng cần biết về kiến trúc x64 và x86), thi hành nó. Nhấp vào ‘Tiếp theo’ hàng chục lần, đợi UAC hiển thị, nhấp vào có và sau đó hy vọng trình cài đặt đã làm đúng.
Tôi nghĩ rằng nếu Windows có hệ thống triển khai tốt hơn, cửa hàng ứng dụng/cửa hàng ứng dụng lành mạnh và tính năng cập nhật trực tiếp phù hợp, ứng dụng web có thể chưa bao giờ phổ biến ở nơi đầu tiên. Tất nhiên đó là một cường điệu nhưng tôi tin rằng rất nhiều thiệt hại đã được thực hiện cho hệ sinh thái ứng dụng Windows bằng cách không cung cấp một mô hình triển khai sane, có thể sử dụng và thậm chí bây giờ Microsoft dường như rất ít chú ý đến vấn đề này.
Làm cách nào để cập nhật ứng dụng ngay hôm nay?
Ứng dụng web: Không cần. Nó được cập nhật.
Mac: Không có ma thuật sẵn có nhưng có một giải pháp được sử dụng rộng rãi và mạnh mẽ được gọi là Sparkle.
Windows: Bạn nên tự cuộn tốt hơn vì không có gì đáng kể ngoài đó.
ClickOnce nên đã thay đổi tất cả điều này nhưng không thể sử dụng được cho các ứng dụng thương mại thực sự.
Dưới đây là tóm tắt:
InnoSetup và cài đặt kịch bản khác dựa trên rất đơn giản nhưng không thể tạo ra một tập tin .msi — Một số công ty yêu cầu các file .msi để tự động hóa việc triển khai mạng. Bạn cũng sẽ cần cài đặt Windows Installer (.msi) nếu bạn muốn nhận được chứng nhận Windows Logo.
Visual Studio Thiết lập dự án 2008/2010 mang đến cho bạn những điều cơ bản một cách dễ dàng và bạn có thể cấu hình một loạt các thứ nhưng một khi bạn muốn làm không thể tưởng tượng như use a high quality icon hoặc bao gồm một changing set of files vào thiết lập của bạn, bạn đang hơi say.Chúng tôi cũng phải tự sửa chữa PackageCode và ProductCode mỗi lần chúng tôi xây dựng một bản cập nhật kể từ khi Visual Studio quản lý bằng cách nào đó lộn xộn các phiên bản lắp ráp và sẽ rời khỏi một phiên bản cũ hơn khi cập nhật, do đó làm hỏng ứng dụng.
WiX là cách không thực tế để tạo các thiết lập trên Windows và thậm chí Thiết lập Microsoft Office được cho là được tạo bằng WiX. WiX không đơn giản. Có sách dành cho WiX!
Thật không may, chỉ riêng WiX vẫn không phải là giải pháp tốt. Chúng tôi sử dụng dotNetInstaller bootstrapper project để đảm bảo .NET Framework được cài đặt và bao bọc tệp .msi và bootstrapper thành một tệp .exe duy nhất mà mọi người có thể tải xuống.
Với tất cả điều này, bạn chủ yếu là tốt. Luôn có những trường hợp lạ là khách hàng không cài đặt Windows Installer (và do đó không thể chạy tệp .msi được nhúng) hoặc khi cài đặt .NET Framework bị lỗi.
Những điều chúng tôi đã không thể làm như vậy cho đến nay:
- Phối cài đặt của chúng tôi!
- Cung cấp một bản tải xuống duy nhất cho cả x64 và x86 - tại thời điểm này, chúng tôi chỉ tạo trình cài đặt x86 vì chúng tôi không muốn người dùng của chúng tôi suy nghĩ về x64 so với x86.
- Có giao diện người dùng thiết lập đẹp cũng hoạt động với cài đặt DPI cao. Tôi nghĩ rằng đây có thể chỉ là một thứ không được hỗ trợ trong thiết lập MSI.
Có một sản phẩm miễn phí gọi là SharpSetup có vẻ như giải quyết một số vấn đề này và cho phép bạn viết giao diện người dùng dựa trên Winforms, nhưng SharpSetup không có bootstrapper và yêu cầu .NET Framework. mã C++ của riêng bạn để phản ứng trong tình huống này.
Đối với bản cập nhật trực tiếp, chúng tôi đã thực hiện giải pháp của riêng mình và sau nhiều sự cố, nó hoạt động tốt.
Bạn cũng có thể muốn nghe Scott Hanselman’s podcast episode with Rick Brewster là họ nói về thiết lập và triển khai Paint.NET - Trong khi tôi chúc mừng Rick và nhóm Paint.NET về thiết lập tốt của họ, sự cần thiết của một giải pháp phức tạp như vậy làm tôi buồn.
Nếu bạn hoàn toàn cần sử dụng .msi thì tôi muốn giới thiệu WiX cho bất kỳ ai muốn tạo trình cài đặt trên Windows, nhưng cuối cùng tôi vô cùng thất vọng với tình huống triển khai trên Windows. Tôi đã lãng phí hàng tuần thời gian của tôi trong những năm qua với các vấn đề thiết lập ngớ ngẩn. Với thiết lập bạn chỉ có thể mất. Bạn sẽ không giành được bất kỳ khách hàng hài lòng nào vì thiết lập của bạn hoạt động nhưng bạn sẽ mất và thất vọng rất nhiều trong số họ nếu không.
Tôi gặp sự cố với trình cài đặt mặc định VS. Theo như tôi có thể nhớ, nó luôn luôn cố gắng để đưa các tập tin trong một số thư mục Common Files bí ẩn với một tên điên, chứ không phải là Program Files, và cũng là khó khăn để tùy chỉnh (đối với tôi, anyway). Tôi đã chọn thiết lập Inno và nó hoạt động rất tuyệt vời. –