2010-09-29 14 views
10

Tôi có Visual C# 2008 Professional và đã phát triển nửa đầu của ứng dụng C# (chế độ console) với nửa thứ hai đang được tiến hành (GUI).Có ai có thể cung cấp "hướng dẫn của thằng ngốc" tốt để tạo trình cài đặt trong VS2008 (C#) Pro không?

Tôi đang tìm một con đường dễ dàng để tạo trình cài đặt cho nó. Các bước cần thực hiện để sản xuất trình cài đặt chuyên nghiệp là gì?

Có một câu hỏi tương tự here liên quan đến ấn bản Express nhưng tôi có Pro và tôi muốn càng nhiều càng tốt để chỉ với công cụ VS chuẩn (nếu bạn cho rằng mình có thể thuyết phục tôi rằng người tạo trình cài đặt bên thứ ba là nhiều hơn tốt hơn so với giải pháp chỉ có VS, cung cấp cho nó một shot, bằng mọi cách).

Hãy nhớ rằng tôi không quan tâm đến việc nâng cấp lên VS2010, ngay cả khi việc tạo trình cài đặt dễ dàng hơn hàng trăm lần. Điều đó có thể đến sau, khi doanh thu bắt đầu lăn vào :-)

Cũng lưu ý rằng thành phần GUI của ứng dụng này là một tệp thực thi hoàn toàn riêng biệt từ phần bàn điều khiển. Phần giao diện điều khiển là một "tệp mở 1" đơn giản, thực hiện một số công việc trên đó, ghi tệp 2 "và GUI là một tệp" mở tệp, làm một số công cụ "khá chuẩn, vì vậy không có hành vi khôn khéo hoặc không có giấy tờ nào xảy ra.

Về cơ bản, tôi đang tìm kiếm (ít nhất) như sau: cài đặt tìm

  • chuyên nghiệp.
  • khả năng chỉ định trong đó các tệp ứng dụng sẽ hoạt động.
  • thay đổi sổ đăng ký để cho phép nhấp đúp vào tiện ích mở rộng tệp của tôi để mở ứng dụng GUI với tệp làm đối số.
  • cần phải cài đặt mọi thứ bắt buộc (nội dung của tôi, .Net nếu được yêu cầu, v.v.).
+0

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

Trả lời

9

Một lựa chọn khác là sử dụng Inno Setup. Nó cho phép bạn tùy chỉnh đầy đủ các cài đặt, nơi gắn các tệp trên máy đích, sửa đổi sổ đăng ký và tất cả nhạc jazz đó. Nếu bạn sẵn sàng dành nhiều thời gian hơn để học một chút về kịch bản cần thiết để đạt được kết quả mong muốn, đó là một công cụ rất mạnh mẽ. (đáp ứng tất cả các yêu cầu của bạn và nhiều hơn nữa) Và quan trọng nhất, đó là miễn phí =)

Tôi đã sử dụng Thiết lập Inno cho tất cả các chương trình .NET lớn hơn. Khi trình cài đặt chạy, nó sẽ kiểm tra xem liệu .NET có được cài đặt hay không, tải xuống và cài đặt nó. Đồng thời, tôi đã sửa đổi registry và tạo các liên kết với các phần mở rộng như bạn đã đề cập. Bao gồm cả DLL với trình cài đặt rất đơn giản - Inno sẽ gộp tất cả các tệp được yêu cầu vào một tệp thực thi duy nhất để xử lý mọi thứ.

Ngoài ra, vì Inno đã có từ năm 1997, một số editors have arisen giúp làm cho quá trình tạo tập lệnh trở nên dễ dàng hơn nhiều.

+0

Upvote cho Inno, nó làm việc tuyệt vời cho dự án của tôi sau khi tôi đã có vấn đề với dự án thiết lập VS. –

0

Visual Studio 2008 có hỗ trợ cài đặt/cài đặt sẵn.

Thêm dự án mới vào giải pháp của bạn và chọn tùy chọn 'Thiết lập dự án' từ danh mục 'Loại dự án khác> Thiết lập và triển khai'.

Có một cái nhìn tại Windows Installer Deployment overview, và a step-by-step walkthrough

+0

Thực sự rất tệ. Tôi đã sử dụng VS dự án thiết lập và họ có một số vấn đề mà làm cho tôi chuyển sang InnoSetup mà làm việc hoàn hảo cho tôi. Rất tiếc, tôi không thể nhớ chính xác các vấn đề ngay bây giờ. –

+0

Từ bình luận của bạn về câu hỏi gốc ("nó luôn cố gắng đưa các tập tin vào một thư mục con Common Files bí ẩn với tên điên"), tôi không thể không tự hỏi liệu bạn có nghĩ đến ClickOnce không? Mặc dù các dự án thiết lập VS không thể tùy chỉnh như trình cài đặt WiX, nhưng nó hơi thô để gọi nó là "thực sự, thực sự xấu". Bạn có đủ quyền kiểm soát để làm mọi thứ mà câu hỏi cần thiết, và nó đẹp và thân thiện với người mới cài đặt/triển khai :) – MatthewKing

+0

Bởi vấn đề lớn nhất với các dự án VS Installer là bạn không thể chạy chúng từ MSBuild - nếu bạn muốn xây dựng chúng trên một máy xây dựng, máy đó phải có một cài đặt VS đầy đủ, và bạn phải yêu cầu VS, rất độc đáo, nếu nó có ý định xây dựng dự án thiết lập cho bạn. –

23

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

+0

Nó có thể là rant hơn câu trả lời nhưng tôi có thể lấy rant kể từ khi bit trả lời vẫn còn hữu ích :-) – paxdiablo

+0

:) Tôi thực sự thực sự muốn có một cách tốt hơn mà 'chỉ hoạt động' ... –

+3

+1 cho một rant xây dựng – AndyPerfect

5

Tôi sử dụng Trình cài đặt nâng cao, nó đã chết đơn giản và tôi sử dụng nó, vì những hạn chế của VS.

http://www.advancedinstaller.com/

Các "nhược điểm" là để cài đặt hoàn toàn tự động phụ thuộc bạn phải trả tiền ;-)

0

Nếu bạn biết ngôn ngữ kịch bản mà bạn có thể kiểm tra NSIS như một thay thế cho VS. Có đủ tài liệu mà bạn có thể sao chép dán trình cài đặt ví dụ của họ và thay thế các vị trí tệp của riêng họ.

1

Nếu bạn muốn tạo trình cài đặt hoàn toàn trong Visual Studio, nhưng đừng ngại sử dụng các công cụ bên ngoài để trợ giúp bạn trong công việc đó, hãy xem chương trình của tôi có tên là SharpSetup. Nó cho phép bạn xây dựng GUI bằng cách sử dụng C#/WinForms, trong khi backend là dựa trên WiX (điều này có nghĩa là sử dụng trình cài đặt WIndows).

-1

Trong khi tôi không cài đặt chuyên gia, tôi đã sử dụng Wix thành công. Nó phức tạp để nói rằng ít nhất.

Tôi không thấy bất kỳ sản phẩm nào trong số này được đề cập rằng tôi đã thấy khách hàng sử dụng thành công.

http://www.installaware.com/ http://www.flexerasoftware.com/products/installshield.htm http://www.wise.com/Products/Installations/WiseInstallationStudio.aspx

Tất cả các cung cấp nội địa hóa, tập tin/app cho hiệp hội nhấp đúp chuột vào, khung bootstrapping và vị trí mục tiêu để theo sự hiểu biết của tôi . InstallAware và Wise cung cấp một số hình thức hỗ trợ autoupdate.

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