2009-08-31 36 views
6

Tôi có một cửa sổ đơn giản Dịch vụ được phát triển trong VS.net 2008 và VB.net. Khi tôi cài đặt dịch vụ bằng cách sử dụng Installutil.exe từ dấu nhắc lệnh nó đang hoạt động như một nét duyên dáng.Dịch vụ Windows không hiển thị khi được cài đặt với dự án Thiết lập

Khi tôi cố gắng thêm một dự án thiết lập và đặt đầu ra và xây dựng và cài đặt nó mặc dù nó được cài đặt thành công, nó không hiển thị trong các dịch vụ.

Nhật ký sự kiện cho biết rằng nó đã được cài đặt thành công. Tôi vừa kiểm tra registry, nó đã đặt các assembly trong HKEY_CURRENT_USER \ Software \ Microsoft \ installer \ assembly.

Nhưng tôi không hiểu tại sao nó không hiển thị trong danh sách dịch vụ. Tôi đã làm mới và khởi động lại.

Bất kỳ suy nghĩ nào ??

Cảm ơn

Trả lời

1

Một vài ý tưởng:

Bạn đang cài đặt dưới Windows cùng một tài khoản mà bạn đang cố gắng để chạy nó dưới? Bạn có thuộc tính "InstallAllUsers" của Dự án Thiết lập được đặt thành True không?

Bạn có chắc chắn rằng bạn có thuộc tính ProductName và Title trong Thiết lập dự án đã thiết lập chính xác không? Có thể dịch vụ đang hiển thị trong danh sách dưới một tên khác, tức là "SetupProject1" hoặc một cái gì đó.

Tương tự, trong lớp ProjectInstaller của dịch vụ, trong dạng xem thiết kế, hãy xem các thuộc tính của ServiceInstaller và đảm bảo các thuộc tính ServiceName và DisplayName được đặt thành những gì bạn muốn.

+0

Cảm ơn. Tôi đã kiểm tra InstallAllUsers thành true và productname và title là chính xác. Ngay cả trong serviceinstaller nó là chính xác. Tôi thậm chí còn khởi động lại máy tính của mình. Eventlog hiển thị dịch vụ được cài đặt thành công. –

+1

Bước này không thực sự giúp tôi giải quyết vấn đề, giải pháp được đăng bởi rowmark dưới đây là bước bị thiếu trong trường hợp của tôi – Sanket

11

Tìm thấy giải pháp Bạn phải thêm hành động tùy chỉnh vào dự án MSI của mình. Vì vậy, trong các hành động tùy chỉnh, hãy thêm đầu ra của dịch vụ của bạn vào phần Cài đặt. Điều này sau đó sẽ chạy mã cài đặt được yêu cầu cho dịch vụ của bạn. ví dụ giống như những gì các installutil.exe không

Cảm ơn tất cả sự giúp đỡ

+1

Đừng quên làm điều tương tự trên phần "gỡ cài đặt", nếu không gỡ cài đặt phần mềm sẽ cho phép "ma "phục vụ ở đó. – andrecarlucci

+0

Tôi cũng đã làm điều này. Phần mềm được sao chép vào đúng địa điểm, nhưng dịch vụ không hiển thị trong danh sách. –

+0

Tôi bỏ qua bước bạn tạo trình cài đặt cho dịch vụ bên trong chính dự án dịch vụ. http://msdn.microsoft.com/en-us/library/zt39148a(v=VS.100).aspx –

6

tôi đã cùng một vấn đề và không chú ý đến các phần trước khi tạo dự án Setup. http://msdn.microsoft.com/en-us/library/zt39148a(v=VS.100).aspx

Để tạo ra các trình cài đặt cho dịch vụ của bạn

Trong giải pháp Explorer, bấm chuột phải Service1.vb hoặc Service1.cs và chọn View Designer.

Nhấp vào nền của nhà thiết kế để chọn dịch vụ, thay vì bất kỳ nội dung nào của dịch vụ.

Với nhà thiết kế tập trung, nhấp chuột phải, sau đó nhấp vào Thêm trình cài đặt.

Theo mặc định, một lớp thành phần chứa hai trình cài đặt được thêm vào dự án của bạn. Thành phần có tên là ProjectInstaller, và các trình cài đặt nó chứa là trình cài đặt cho dịch vụ của bạn và trình cài đặt cho quá trình liên quan đến dịch vụ.

Trong dạng xem thiết kế cho ProjectInstaller, hãy bấm ServiceInstaller1 hoặc serviceInstaller1.

Trong cửa sổ Thuộc tính, hãy đảm bảo thuộc tính ServiceName được đặt thành MyNewService.

Đặt thuộc tính StartType thành Tự động.

Trong trình thiết kế, bấm ServiceProcessInstaller1 (cho dự án Visual Basic), hoặc serviceProcessInstaller1 (cho dự án Visual C#). Đặt thuộc tính Tài khoản thành LocalSystem. Điều này sẽ khiến cho dịch vụ được cài đặt và chạy trên một tài khoản dịch vụ cục bộ.

+0

Điều này cuối cùng đã giải quyết nó cho tôi (để có được tên dịch vụ chính xác) nhưng cũng phải thêm hành động tùy chỉnh như được mô tả bằng dấu hàng, nếu không không có dịch vụ nào xuất hiện ở tất cả –

+0

Câu trả lời hay. Giải quyết nó cho tôi quá –

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