• Home »
  • Csharp »
  • Tạo bộ cài đặt cho Windows services sử dụng project Installer trong Visual Studio

Tạo bộ cài đặt cho Windows services sử dụng project Installer trong Visual Studio


      Sau khi phát triển xong một Windows services phục vụ cho công việc của bạn, thì công việc của bạn đó chính là triển khai Windows services trên Server dịch vụ của chính các bạn hoặc của môi trường Server của khách hàng. Để thực hiện công việc triển khai này bạn có nhiều cách như chạy các lệnh SC, PowerShell để cài đặt bằng tay các Windows services bạn đã phát triển hoặc sử dụng công cụ Công cụ Installutil.exe của Visual Studio.

      Nhưng những cách này chỉ phù hợp với Server là do bạn hoàn toàn kiểm soát. Đối với môi trường chuyên nghiệp, hạ tầng thường do một phòng, một trung tâm khác phụ trách hoặc bạn sẽ phải triển khai Windows services trên server khách hàng do team IT của khác hàng quản lý thì những cách này hoàn toàn không thể thực hiện được. Lúc này bạn cần đến phải tạo ra một bộ cài đặt cho Windows services của bạn bằng cách sử dụng Setup Project được cung cấp sẵn trong môi trường Net Framwork của Microsoft.

     Dưới đây là các bước giúp bạn tạo bộ cài đặt Installer trong Visual Studio để triển khai Windows services:

Bước 1: Chuẩn bị project Installer hay Setup Project trên Visual Studio

      Các phiên bản Visual Studio khác nhau sẽ hỗ trợ loại project cài đặt này khác nhau, ví dụ như trên Visual Studio 2010, bạn có thể dễ dàng tìm thấy Setup Project trong cây danh mục project của Visual Studio là Other Project Types=> Setup And Deplopment => Visual Studio Installer

Setup Project Visual Studio 2010

      Nhưng trong một số bản Visual Studio khác, ví như Visual Studio 2019, bạn phải vào phần quản lý Manage Extensions của Visual Studio để cài đặt thêm Setup Project. Ví dụ như trong hình bạn hãy tìm với từ khóa Install bạn sẽ tìm được Microsoft Visual Studio Installer Projects, hãy cài đặt nó để có công cụ cho việc tạo Setup Project.Setup Project Visual Studio 2019


Bước 2: Kiểm tra Windows services đã có một Installer phục vụ cho việc cài đặt chưa

      Để cài đặt services cần tạo bộ cài đặt cho Services thông qua lớp Installer của namspace System.Configuration.Install

       Kích chuột phải vào file DemoServices chọn View Designer trên Visual Studio. Tại View Designer tiếp chọn Add Installer. 

Tao Project Windows Services Trong Visual Studio 2012 -02

    Trong file ProjectInstaller.cs cung cấp sẵn cho chúng ta 2 đối tượng ServiceProcessInstallerServiceInstaller trong namspace System.ServiceProcess để cung cấp thêm thông tin cho việc tạo Setup Project cho Window Service.

Project Installer

       Kích vào thông tin của đối tượng Service Installer, ta thay đặt tên chính thức của Window Services ở thuộc tính ServiceName và chọn chế độ StartType cho Windows Services là : Boot, System, Automatic, Manual, hoặc Disabled.

Service Installer

 

      Đối với đối tượng Services Process Installer, điều bạn quan tâm đến là thuộc tính Account: Local System, Local Service, NetworkService, User (mặc định)Services Process Installer

       Đối với tạo bộ cài triển khai Windows services bạn nên chọn Account là: Local System.  Nếu bạn để mặc định là User khi chạy bản cài đặt ở Bước 6 nó sẽ hiện thị ra thông báo bặt bạn nhập User cài đặt như hình dưới

Set Service Login

      Sau đó quay trở lại file ProjectInstaller.Designer.cs ta thấy rằng, với cấu hình trên Visual Studio sinh sẵn code cho ta như sau:

Service Installer code

 


Bước 3: Add thêm Setup Project vào Solution phục vụ cho việc cài đặt

       Thêm một Setup Project vào Solution:

Add a New Setup Project

        Đặt tên cho Setup Project và thư mục lưu trữ

Configure a Setup Project

     Kích chuột trái vào , chọn Add => Project Output 

  Add Project Output

       Trên cửa sổ Add Project Output Group chọn Project Windows Services mà chúng ta đã phát triển

Add Project Output Group

     Ngoài add Project Windows Services, chúng ta có thể add thêm các File, DLL, Assembly mà Project Windows Services của các bạn cần tham chiếu hoặc sự dụng trong quá trình phát triển.

Add File vs Asembly

 


Bước 4: Chọn View Custom Actions để tạo ra Install và UnInstall cho Setup Project

     Kích chuột trái vào Setup Project chọn View => Custom Actions

Custom Actions

      Chọn Install => Add Custom Actions

Custom Actions Install

        Chọn UnInstall => Add Custom Actions

Custom Actions UnInstall


Bước 5: Cung cấp thêm thông tin Setup Project cho việc triển khai

       Kích chuột phải  vào Setup Project bạn có rất nhiều thông tin về Project có thể thay đổiSetup Window Service Properties

    Những thông tin thường hay thay đổi nhất là:

– Author : Tên tác giả (hoctoantap.com)

– Manufacturer: Tên công ty (Khi cài đặt ra sẽ là tên thư mục nằm trong C:\Program Files (x86)\Tên công ty hoặc C:\Program Files\Tên công ty hoặc tùy thuộc vào C:\Program Files (x86)\Tên công ty tùy thuộc vào TargetPlatform)

– ProductName: Tên sản phẩm sau khi cài đặt trong Control Panel

– TargetPlatform : x86 hoặc x64

Version: Phiên bản của Services do bạn quản lý

Setup Window Service Properties After

     Build Setup Project và tới thư mục build ta nhận được:

Build Setup Project


Bước 6: Cài đặt và kiểm tra việc cài đặt Ưindows Services thành công

 Chạy 1 trong 2 file để cài đặt windows Services bằng bộ cài đặt

Setup Project Winrar

      Chọn thư mục cài đặt và services áp dụng cho mọi người hay chỉ mình bạn, sau đó tiếp tục next:

Installation Complete

       Để kiểm tra Services đã cài đặt thành công chưa bạn vào cửa sổ Services Manager bằng cách gõ cửa sổ Run (Services.msc).

Window Services Install in Services.msc

        Nếu Service cài đặt thành công bạn sẽ thấy nó xuất hiện như hình ở trên với trạng thái Automatic, bạn kích chuột trái lên tên Service để chuyển trạng thái của Service thành Running. Sau đó kiểm tra thư mục cài đặt windows service. Do bạn build Services trên nền tảng 32 bit, nên sau khi cài đặt các file .exe của Service sẽ xuất hiện trong thư mục C:\Program Files (x86)\Hoctoantap\DemoWindowService

Window Services Install in Folder

     Kiểm tra việc cài đặt Service trong Control Panel

Window Services Install in Controll Panel

      Để theo dõi hoạt động hàng ngày của windows service bạn hãy vào Event Viewer (cách gõ cửa sổ Run Eventvwr.msc) của Window để xem Window Logs ghi nhận các hoạt động bạn đã đã ghi lại trong ứng dụng Service của bạn.

Window Services Install in Event Viewer

      Trong ứng dụng thực tế chỉ nên dùng Window Logs trong các trường hợp ghi lỗi nghiêm trọng, để ghi log rõ ràng và tường minh hơn về mặt nghiệp vụ bạn có thể sử dụng các hình thức ghi log vào file, cơ sở dữ liệu bằng log tự viết hoặc sử dụng các thư viện có sẵn như NLog, Log4net, Serilog.

Tải code demo : Tại đây

      Bài viết có gì sai sót hoặc trong quá trình làm thử mà có thắc mắc gì các bạn hãy comment ở bên dưới nhé. Xin chân thành cảm ơn.


Phản hồi

Phản hồi