2009-10-09 1 views
9

Tôi đã phát triển một dịch vụ Windows bằng Visual Studio 2008. Tôi muốn cài đặt dịch vụ đó trong một máy tính mà Visual Studio chưa được cài đặt, nhưng .NET 3.5 được cài đặt.Cách cài đặt dịch vụ Windows được phát triển trong .NET 3.5?

Thông thường InstallUtil.exe sẽ được sử dụng để cài đặt Dịch vụ Windows, nhưng tiện ích InstallUtil.exe không có sẵn trong .NET 3.5. Khi tôi thử cài đặt dịch vụ đó bằng .NET 2.0, dịch vụ sẽ được hiển thị trong danh sách dịch vụ nhưng khi bắt đầu dịch vụ, lỗi dịch vụ Windows 1053 sẽ đến. Làm thế nào chúng ta có thể tránh được vấn đề này và cài đặt thành công dịch vụ?

Trả lời

4

Có một Microsoft KB trên này cho .Net 2.0 và VS2005. Quy trình này hoàn toàn giống nhau trong .Net 3.5 và VS2008.

http://support.microsoft.com/kb/317421

Và đây là một bài viết đẹp hơn với hình ảnh để làm cho nó rõ ràng hơn. (Đôi khi của KB không phải là thân thiện như hướng dẫn bạn có thể tìm thấy ở nơi khác.)

http://aspalliance.com/1316_Working_with_Windows_Service_Using_Visual_Studio_2005.3

+0

Khi VS khả dụng trên máy, không có sự cố khi cài đặt dịch vụ. Nếu VS không có sẵn cách chúng tôi có thể cài đặt dịch vụ được phát triển trong .Net3.5? – srv

+0

Dự án thiết lập, khi được xây dựng, tạo một trình cài đặt (tệp .msi). Sao chép nó (và tệp setup.exe cũng sẽ nằm trong thư mục của dự án) vào máy bạn muốn cài đặt và chạy nó giống như bất kỳ chương trình thiết lập nào. Một điều cần lưu ý là bạn có thể cần phải nhấp chuột phải vào dự án thiết lập và chọn "xây dựng". Theo mặc định, các dự án thiết lập không xây dựng khi bạn chọn "Giải pháp xây dựng". Mặc định gây phiền nhiễu này có thể được ghi đè trong trình quản lý cấu hình. – David

1

Nếu bạn đã sử dụng InstallUtil.exe để cài đặt dịch vụ Windows của bạn, sau đó có nghĩa là bạn đã thêm một ProjectInstaller thành phần cho dịch vụ của bạn. Tất cả InstallUtil.exe đều sử dụng sự phản chiếu để tìm thành phần cài đặt được nhúng trong dịch vụ của bạn và thực hiện một số phương thức trên nó. Do đó, bạn có thể sửa đổi dịch vụ Windows của mình để tự cài đặt và gỡ cài đặt, tức là, bạn không còn phải phụ thuộc vào InstallUtil.exe khả dụng trên máy mục tiêu nữa. Tôi đã sử dụng thành công này trong vài tháng nay. Chỉ cần làm theo từng bước tôi đã cung cấp here. Ý tưởng ban đầu thuộc về Marc Gravell và điều này post.

8

Nó thực sự thực sự đơn giản như tôi đã làm nó một vài ngày trước cho một cái gì đó tôi thực hiện.

Vì vậy, trong dự án dịch vụ của bạn, bạn muốn:

  1. Trong cửa sổ solution explorer nhấp đúp chuột vào tập tin dịch vụ của bạn cs. Nó sẽ mang đến một màn hình có màu xám và nói về việc kéo nội dung từ hộp công cụ.
  2. Sau đó nhấp chuột phải vào vùng màu xám và chọn thêm trình cài đặt. Thao tác này sẽ thêm tệp dự án trình cài đặt vào dự án của bạn.
  3. Sau đó, bạn sẽ có 2 thành phần trên giao diện thiết kế của ProjectInstaller.cs (serviceProcessInstaller1 và serviceInstaller1). Sau đó bạn nên thiết lập các thuộc tính như bạn cần.

Bây giờ bạn cần thực hiện một dự án thiết lập. Điều tốt nhất cần làm là sử dụng trình hướng dẫn cài đặt.

  1. Nhấp chuột phải vào giải pháp của bạn và thêm một dự án mới: Thêm> New Project> Thiết lập và triển khai dự án> Setup Wizard
  2. Trên Bước thứ hai chọn "Create a cài đặt cho một ứng dụng Windows."
  3. Ở bước thứ ba, chọn "Đầu ra chính từ ..."
  4. Nhấp qua để kết thúc.

Bây giờ bạn cần chỉnh sửa trình cài đặt để đảm bảo bao gồm đầu ra chính xác.

  1. Nhấp chuột phải vào dự án thiết lập trong Solution Explorer của bạn.
  2. Chọn Xem> Trình chỉnh sửa> Tác vụ tùy chỉnh.
  3. Nhấp chuột phải vào hành động Cài đặt trong cây Hành động tùy chỉnh và chọn 'Thêm tác vụ tùy chỉnh ...'
  4. Trong hộp thoại "Chọn mục trong dự án", chọn Thư mục ứng dụng và nhấp OK.
  5. Nhấp vào OK để chọn tùy chọn "Đầu ra chính từ ...". Một nút mới sẽ được tạo.
  6. Lặp lại các bước 4 - 5 cho các hành động cam kết, khôi phục và gỡ cài đặt.

Bây giờ, chỉ cần xây dựng trình cài đặt của bạn và nó sẽ tạo ra MSI và setup.exe. Chọn bất cứ điều gì bạn muốn sử dụng để triển khai dịch vụ của bạn.

0

Thông điệp:

"Lỗi 1053:. Các dịch vụ không đáp ứng với sự khởi đầu hoặc kiểm soát yêu cầu một cách kịp thời"

thường là phản hồi chung cho sự cố khi khởi động Dịch vụ Windows. Những gì bạn cần làm là kiểm tra nhật ký sự kiện và có khả năng bạn sẽ tìm thấy lỗi thực đang ngăn dịch vụ bắt đầu.