Hướng dẫn thực tế để tạo trình cài đặt tùy chỉnh với Inno Setup

Cập nhật lần cuối: 09/09/2025
tác giả: Isaac
  • Inno Setup cho phép cài đặt mạnh mẽ cho Cửa sổ với sự kiểm soát hoàn toàn thông qua kịch bản và hỗ trợ x64.
  • Xác minh .NET 6 bằng CodeDependencies và netcorecheck đảm bảo thực thi đáng tin cậy.
  • Cấu hình tốt: GUID duy nhất, nén LZMA, quyền quản trị và đa ngôn ngữ.
  • Tự động hóa các dịch vụ (tạo, bắt đầu, dừng, xóa) và xác thực trên VM trước khi xuất bản.

Trình cài đặt cho Windows với Inno Setup

Việc tự tạo trình cài đặt trên Windows không chỉ dành cho các nhóm lớn: với công cụ phù hợp, bạn có thể đóng gói ứng dụng và mang đến trải nghiệm cài đặt hoàn hảo chỉ trong vài phút. Sau đây, tôi sẽ giải thích chi tiết cách tận dụng tính năng này. Inno Setup để xây dựng trình cài đặt tùy chỉnh, xem xét các yêu cầu, kiến ​​trúc 64-bit, xuất bản các dự án .NET và kiểm tra sự phụ thuộc.

Trong những dòng sau, bạn sẽ tìm thấy hướng dẫn đầy đủ và thiết thực, bao gồm mọi thứ từ khâu chuẩn bị dự án đến biên dịch và thử nghiệm trình cài đặt. Tôi cũng kết hợp Mẹo quan trọng để tránh những sai lầm thường gặp (chẳng hạn như GUID trùng lặp hoặc quên bao gồm tất cả các tệp đã xuất bản) và tôi sẽ chỉ cho bạn cách tự động cài đặt dịch vụ Windows nếu ứng dụng của bạn cần.

Inno Setup là gì

Inno Setup là gì và nó hoạt động như thế nào?

Inno Setup là một trình tạo trình cài đặt phần mềm miễn phí rất cũ và ổn định dành cho Windows, kết hợp trình hướng dẫn đồ họa với tập lệnh trung tâm nơi bạn xác định hành vi của trình cài đặt (tham số, tác vụ, kiểm tra, v.v.). Thông qua tập lệnh này, bạn có thể kiểm soát mọi thứ từ vị trí cài đặt đến các phím tắt trên Màn hình nền hoặc Menu Bắt đầu, và thậm chí bao gồm cả việc cài đặt các nguồn hoặc tài nguyên bổ sungNgoài ra còn có các giải pháp bổ sung như Ninite để triển khai phần mềm tự động.

Về khả năng tương thích, nó bao gồm một loạt các hệ thống rất rộng: Windows 10, 8, 7, Vista, Server 2003, XP (bao gồm cả phiên bản x64), 2000, NT 4.0 và 9x. Ngoài ra, nó còn hỗ trợ Cài đặt các ứng dụng 64-bit và tạo trình cài đặt cụ thể đối với kiến ​​trúc đó, điều này đặc biệt có liên quan nếu bạn đang tìm kiếm hiệu suất và sự phù hợp với các nền tảng hiện tại.

Điều kiện tiên quyết

Yêu cầu để tạo trình cài đặt bằng Inno Setup

Trước khi bắt đầu, hãy đảm bảo bạn đã chuẩn bị sẵn những yếu tố này. Mỗi yếu tố đều có mục đích riêng và sẽ giúp bạn tiết kiệm thời gian kiểm tra và chỉnh sửa. xem xét chúng một cách bình tĩnh:

  • Inno Setup (phiên bản ổn định mới nhất)Cài đặt hoặc cập nhật nếu bạn đã có. Việc cập nhật thường xuyên là rất quan trọng để một số tập lệnh và tiện ích mở rộng chạy mượt mà.
  • Trình cài đặt phụ thuộc Inno Setup: Tải xuống mã từ kho lưu trữ (tùy chọn Tải xuống mã nguồn) và giải nén. Từ đó, chúng ta sẽ cần hai phần: tệp CodeDependencies.iss và tệp thực thi netcorecheck_x64.exe, sẽ giúp chúng ta kiểm tra/cài đặt .NET.
  • Dự án .NET 6Bạn có thể sử dụng phiên bản của riêng mình hoặc tạo phiên bản mẫu; điều quan trọng là phải xuất bản phiên bản đó một cách chính xác để các tệp nhị phân được đóng gói vào trình cài đặt.
  • Máy ảo để thử nghiệm (khuyến nghị): Điều này không bắt buộc, nhưng rất được khuyến khích để tránh những tác động không mong muốn trên máy tính chính của bạn trong khi lặp lại trình cài đặt.

Áp dụng kiến ​​trúc 64-bit vào dự án của bạn

Ngày nay, hầu hết máy tính đều hoạt động ở chế độ 64-bit, vì vậy việc biên dịch ứng dụng của bạn ở chế độ x64 thường mang lại hiệu suất và khả năng tương thích cao hơn. Trong Visual Studio 2022, bạn có thể dễ dàng thay đổi kiến ​​trúc và để ứng dụng sẵn sàng cho việc phát triển. Trình cài đặt hướng 64 bit.

Trong thanh trên cùng của Visual Studio, bên cạnh bộ chọn cấu hình (Gỡ lỗi/Phát hành), hãy nhấp vào menu thả xuống nền tảng (thường là Bất kỳ CPU nào) và nhập Quản lý cấu hìnhTừ đó, tạo một nền tảng mới bằng cách chọn x64, sao chép cấu hình từ Bất kỳ CPU nào và đánh dấu vào ô để tạo nền tảng trong các dự án giải pháp.

  Cách thay đổi hướng màn hình trong Windows 11 từng bước

Sau khi đóng hộp thoại, bạn sẽ biên dịch trên nền tảng x64 khi chọn nền tảng đó. Thay đổi này đặc biệt hữu ích khi xây dựng trình cài đặt, vì Inno Setup cho phép bạn chỉ định cài đặt trên nền tảng xXNUMX. Chế độ 64 bit, phù hợp với nhị phân của bạn.

Xuất bản dự án

Để đóng gói ứng dụng, tốt nhất bạn nên xuất bản nó vào một thư mục có cấu hình phù hợp. Điều này đảm bảo trình cài đặt sao chép chính xác các tệp cần thiết và không làm mất tài nguyên phát triển. Mục tiêu là chuẩn bị sẵn một thư mục chứa các tệp nhị phân. Inno Setup sẽ sao chép vào {app}.

Trong Visual Studio 2022, nhấp chuột phải vào dự án của bạn và chọn Xuất bản. Chọn Thư mục làm đích. Trên màn hình cấu hình, mở Hiển thị Tất cả Cấu hình và đặt cấu hình thành Phát hành | x64Bạn có thể điều chỉnh đường dẫn xuất bản nếu muốn; nếu không, vị trí hồ sơ xuất bản mặc định sẽ được sử dụng.

Cuối cùng, nhấp vào Xuất bản. Visual Studio sẽ biên dịch và đặt các tệp thực thi và tệp phụ thuộc vào thư mục được chỉ định. Bạn sẽ sử dụng đường dẫn đó sau trong tập lệnh. Hãy giữ nó ở nơi tiện dụng vì bạn sẽ tham chiếu nó bằng một macro trỏ tới tất cả các tập tin.

Chuẩn bị tập lệnh trong Inno Setup

Mở Inno Setup và tạo một tập lệnh trống. Lưu tập lệnh này vào một thư mục làm việc cùng với hai tệp chính từ gói phụ thuộc: CodeDependencies.iss và netcorecheck_x64.exeBằng cách này, bạn sẽ có ba phần tử khởi tạo trong cùng một thư mục: tập lệnh .iss, thư viện phụ thuộc và trình kiểm tra .NET. Nếu muốn, bạn có thể tham khảo hướng dẫn về cách tạo trình cài đặt nhỏ với tập lệnh .bat để hiểu cấu trúc cơ bản của kịch bản.

Cấu trúc của tập lệnh xoay quanh một số phần và chỉ thị kiểm soát cách cấu hình, những tập tin nào được sao chép, những phím tắt nào được tạo và những hành động nào được thực hiện trước, trong và sau khi cài đặt. Dưới đây là những điểm thiết yếu bạn cần xác định cho trình cài đặt 64-bit hiện đại có xác minh. .NET 6 trên máy tính mục tiêu.

Phần thiết lập: Nhận dạng, Nén và 64-bit

Trong Thiết lập, bạn xác định danh tính sản phẩm, đường dẫn mặc định và các tham số cài đặt. Điều cần thiết là phải chỉ định AppId duy nhất (GUID)Để lấy GUID, bạn có thể sử dụng tùy chọn riêng của Inno Setup: Công cụ → Tạo GUID. Nếu bạn sử dụng lại GUID trên nhiều trình cài đặt khác nhau, hệ thống có thể nhầm lẫn và coi một bản cài đặt là bản cập nhật của bản cài đặt khác.

Một tập hợp các macro thường được sử dụng để ánh xạ thông tin chính: ví dụ, #define MyAppName, #define MyAppVersion, #define MyAppPublisher, #define MyAppURL, #define MyAppExeNamehoặc thậm chí là một macro cho tên dịch vụ nếu ứng dụng của bạn yêu cầu (như #define MyService). Bạn cũng sẽ xác định thư mục xuất bản và thư mục cài đặt đích thông qua các macro như #define PublishFolder y #define InstallationDir.

Với thông tin đó, bạn ánh xạ các trường cài đặt: AppName, AppVersion, AppPublisher, AppPublisherURL, AppSupportURL, AppUpdatesURL, DefaultDirName (thường kết hợp InstallationDir + MyAppName), DefaultGroupName y OutputBaseFilename (tên mà tệp thực thi cài đặt sẽ được tạo ra). Đối với việc đóng gói, nó thường được kích hoạt Nén lzma và nén rắn có, Với WizardStyle hiện đại, quyền quản trị viên PrivilegesRequired=admin và, nếu có thể áp dụng, ArchitecturesInstallIn64BitMode=x64 để cài đặt trong 64 bit.

Phần mã: Kiểm tra .NET 6

Sử dụng thư viện phụ thuộc, bạn có thể thêm lệnh gọi trong quá trình khởi tạo để kiểm tra xem .NET 6 Desktop có hiện diện hay không. Nếu không, trình cài đặt sẽ cung cấp cài đặt nó tự động. Trong hàm khởi tạo (InitializeSetup) chỉ cần gọi thủ tục được cung cấp bởi thư viện, giống như Dependency_AddDotNet60Desktopvà trả về True để tiếp tục.

  Cách sửa chữa Active Directory ở chế độ an toàn và khôi phục tên miền của bạn

Hãy nhớ rằng để điều này có hiệu quả, tệp phải nằm trong cùng thư mục với tập lệnh CodeDependencies.iss và tệp thực thi netcorecheck_x64.exe. Cái đầu tiên được bao gồm trong tập lệnh của bạn và cái thứ hai được phân phối cùng với ứng dụng của bạn trong thư mục cài đặt để thực hiện kiểm tra thời gian chạy.

Phần ngôn ngữ: trình cài đặt đa ngôn ngữ

Inno Setup cho phép bạn thêm nhiều ngôn ngữ vào giao diện trình hướng dẫn. Bạn có thể kích hoạt những ngôn ngữ bạn cần; ví dụ: tiếng Anh, tiếng Catalan, tiếng Pháp, tiếng Bồ Đào Nha và tiếng Tây Ban Nha. Mỗi ngôn ngữ tham chiếu đến tệp tin nhắn của nó, giống như compiler:Default.isl hoặc các tuyến đường của phong cách compiler:Languages\Spanish.islNếu bạn không cần tất cả, hãy bình luận những mục bạn sẽ không sử dụng.

Việc thiết lập nhiều ngôn ngữ trong trình cài đặt sẽ cải thiện trải nghiệm, nhưng đừng quên kiểm tra xem văn bản tùy chỉnh của bạn (chẳng hạn như tên ứng dụng hoặc URL hỗ trợ) có dành cho một ngôn ngữ cụ thể hay không. công chúng quốc tế hoặc được bản địa hóa rõ ràng, tùy thuộc vào trường hợp của bạn.

Phần tập tin: những gì cần sao chép và những gì cần loại trừ

Ở đây bạn chỉ ra nguồn của các tập tin (thư mục xuất bản của bạn) và đích (thông thường {app}). Một chi tiết quan trọng: trong macro xuất bản, hãy để dấu hoa thị ở cuối đường dẫn (ví dụ: đường dẫn kết thúc bằng \xuất bản\*) để trình cài đặt sao chép tất cả các tệp trong thư mục và các thư mục con. Nếu không có ký tự đại diện đó, bạn có thể quên các tập tin cần thiết trong bao bì.

Việc thêm quy tắc loại trừ là điều thường thấy nếu bạn không muốn phân phối một số tệp cấu hình hoặc tệp tạm thời. Ví dụ: bạn có thể loại trừ conf.xml cho dù cấu hình đó có nên được tạo ra khi chạy thời gian thực hay được phân phối bằng phương tiện khác. Tận dụng cờ chung như ignoreversion, recursesubdirs y createallsubdirs để kiểm soát cách sao chép tệp. Cũng nên cân nhắc việc xử lý các tệp cài đặt truyền thống như tập tin .inf nếu cài đặt của bạn yêu cầu chúng.

Đừng quên đưa tệp thực thi vào phần này. netcorecheck_x64.exe để nó nằm trong thư mục ứng dụng. Điều này đi đôi với việc kiểm tra sự phụ thuộc mà bạn thiết lập trong phần Mã và đảm bảo cài đặt mạnh mẽ.

Phần biểu tượng: phím tắt

Nếu bạn muốn tạo đường dẫn Trong nhóm chương trình, hãy xác định một mục nhập trỏ đến tệp thực thi chính của bạn. Ví dụ: một biểu tượng được đặt tên dựa trên {#MyAppName} và anh ấy ném {app}\{#MyAppExeName}. Bạn có thể tạo thêm nhiều phím tắt (Màn hình nền, Trang chủ, v.v.) khi cần, nhưng hãy nhớ rằng ít hơn là nhiều hơn và không nên cung cấp cho người dùng quá nhiều lựa chọn.

Chạy và Gỡ cài đặtPhần Chạy: dịch vụ và tác vụ

Nếu ứng dụng của bạn chạy dưới dạng dịch vụ Windows, bạn có thể quản lý vòng đời của nó ngay từ trình cài đặt. Ý tưởng là dừng và xóa dịch vụ trước đó (nếu có), sau đó tạo dịch vụ mới trỏ đến. {app}\{#MyAppExeName} với tính năng tự động khởi động và cuối cùng khởi động nó sau khi sao chép các tập tin. Tất cả điều này được thực hiện với sc.exe được gọi ở chế độ ẩn, truyền các tham số thích hợp (dừng, xóa, tạo với binPath và bắt đầu). Nếu bạn cần chạy lệnh từ trình cài đặt, hãy xem cách mở CMD từ trình cài đặt để quản lý các quy trình và dịch vụ.

Để gỡ cài đặt, bạn có thể xác định các hành động đóng tiến trình và dừng cũng như xóa dịch vụ. Một lệnh taskkill giúp đóng tệp thực thi nếu nó vẫn đang chạy, theo sau là sc.exe stop y sc.exe deleteBằng cách này, bạn đảm bảo rằng việc xóa sạch sẽ và không còn dấu vết của các dịch vụ đang hoạt động nào còn sót lại ở cuối gỡ cài đặt.

  Cách xóa cookie trong Safari trên iPhone, iPad và Mac: hướng dẫn đầy đủ

Những điểm chính của kịch bản và những lỗi thường gặp

Để lại ký tự đại diện cuối cùng trong macro bài đăng. Sai lầm kinh điển là quên dấu hoa thị ở cuối PublishFolder, dẫn đến việc không sao chép tất cả các tệp cần thiết. Ngoài ra, hãy kiểm tra các mục loại trừ để bạn không bị bất ngờ bởi các tệp bạn thực sự cần.

Luôn tạo GUID mới cho AppIdNếu bạn chia sẻ cùng một ID trên nhiều ứng dụng khác nhau, Inno Setup có thể hiểu đây là bản cập nhật chứ không phải bản cài đặt độc lập. Đây là một trong những nguyên nhân phổ biến nhất gây ra hành vi lạ trong quá trình gỡ cài đặt hoặc trong mục Bảng điều khiển.

Đánh dấu cài đặt 64-bit khi thích hợp. Với ArchitecturesInstallIn64BitMode=x64 bạn căn chỉnh trình cài đặt với nhị phân x64 của mình và tránh các chuyển hướng hệ thống không cần thiết. Đi kèm với PrivilegesRequired=quản trị viên nếu bạn cần ghi vào các vị trí được bảo vệ, đăng ký dịch vụ hoặc cài đặt tài nguyên hệ thống.

Xem lại các ngôn ngữ được bao gồm. Nếu trình cài đặt hướng đến một đối tượng cụ thể, hãy chỉ sử dụng những ngôn ngữ cần thiết. Việc chỉ giữ lại những ngôn ngữ thiết yếu sẽ đơn giản hóa gói, giảm thiểu nguy cơ không nhất quán và cải thiện trải nghiệm người dùng.

Biên dịch trình cài đặt

Khi mọi thứ đã sẵn sàng, đã đến lúc biên dịch. Trong Inno Setup, vào Build → Compile. Nếu không có lỗi, tệp thực thi cài đặt sẽ được tạo với tên bạn đã chỉ định trong OutputBaseFilenameĐể xác định vị trí ngay lập tức, hãy sử dụng tùy chọn Xây dựng →. Thư mục mở và kiểm tra xem tệp có nằm đúng vị trí bạn mong đợi không.

Nếu có bất kỳ lỗi nào xuất hiện, trước tiên hãy kiểm tra thư viện phụ thuộc, sự hiện diện của CodeDependencies.iss y netcorecheck_x64.exevà đường dẫn xuất bản. Nhiều khi lỗi là do đường dẫn sai chính tả, thiếu tệp hoặc GUID không hợp lệ trong AppId.

Đề xuất kiểm tra

Để kiểm tra xem mọi thứ có hoạt động trơn tru hay không, tốt nhất là cài đặt trên máy ảo. Bằng cách này, bạn có thể xác nhận trình cài đặt sao chép tất cả các tệp, tạo lối tắt, quản lý các phần phụ thuộc như .NET 6 và, nếu có, cài đặt và khởi động dịch vụ không xung đột với hệ thống máy chủ.

Sau khi chạy trình cài đặt, hãy xác nhận ứng dụng của bạn đang hoạt động như mong đợi. Nếu đó là một dịch vụ, hãy kiểm tra trạng thái của nó bằng công cụ Dịch vụ Windows hoặc sc query. Kiểm tra xem nó có thực hiện nhiệm vụ của mình không (ví dụ, ghi một bản ghi vào một tệp) và khi máy được khởi động lại, dịch vụ vẫn ở chế độ tự động.

Hãy thử gỡ cài đặt từ Bảng Điều khiển. Thao tác này sẽ dừng và xóa dịch vụ, xóa các tệp khỏi thư mục cài đặt (trừ những tệp bạn chọn giữ lại) và xóa các phím tắt và mục nhập hệ thống. Nếu có gì đó không được gỡ bỏ đúng cách, hãy xem lại phần Chạy và Gỡ cài đặt để điều chỉnh thứ tự các thao tác hoặc tham số sc.exe.

Với sự kết hợp giữa chuẩn bị (x64), xuất bản cẩn thận, kiểm tra phụ thuộc và kiểm soát vòng đời dịch vụ, Inno Setup cho phép bạn cung cấp cho người dùng một trình cài đặt chuyên nghiệp. Bằng cách làm theo các bước này và theo dõi các điểm quan trọng (GUID duy nhất, ký tự đại diện trong PublishFolder, đặc quyền và ngôn ngữ), việc tạo và duy trì trình cài đặt Windows trở nên dễ dàng hơn. có thể dự đoán được, có thể lặp lại và không có bất ngờ.

trình cài đặt exe
Bài viết liên quan:
Cách tạo trình cài đặt riêng cho các chương trình Windows