2012-09-11 31 views
18

Tôi đang cố gắng cài đặt dịch vụ cửa sổ.installutil hoàn tất thành công nhưng dịch vụ chưa được cài đặt

chạy c: \ windows \ microsoft.net \ Framework64 \ v4.0.30319 \ InstallUtil.exe c: \ foo \ MyAssembly.exe

tôi nhận được một thông điệp tốt đẹp mà tất cả các giai đoạn (cài đặt, cam) kết thúc thành công .

(tôi không được nhắc nhập thông tin đăng nhập dịch vụ)

sau đó tôi không thấy dịch vụ trong bảng điều khiển dịch vụ. không có gì hữu ích trong nhật ký cài đặt.

giải pháp được xây dựng trên hộp 64 bit và tôi đang cố cài đặt dịch vụ trên máy 64 bit. tuy nhiên, tôi không thấy 64bit như một tùy chọn trong thuộc tính giải pháp. tôi đã chỉnh sửa thủ công tất cả các tệp csproj để chọn "x64" cho các nút [nền tảng] ..

tôi có thể chạy dịch vụ ra khỏi studio trực quan không thành vấn đề.

installer.cs

[RunInstaller(true)] 
public partial class Installer : System.Configuration.Install.Installer 
{ 
    public Installer() { 
     InitializeComponent(); 
    } 
} 

đây là cài đặt mặc định được cung cấp bởi visual studio.

+0

Tôi đã chỉnh sửa tiêu đề của bạn. Vui lòng xem, "[Câu hỏi có nên bao gồm" thẻ "trong tiêu đề của họ không?] (Http://meta.stackexchange.com/questions/19190/)", trong đó sự đồng thuận là "không, họ không nên". Ngoài ra, nếu đó là một câu hỏi của cài đặt, sau đó điều này có thể không có gì để làm với WCF, vì vậy tôi loại bỏ thẻ đó. –

+0

Xin lỗi! Lựa chọn sai từ. Script cài đặt !! – madhairsilence

+0

madhairsilence .. là installer.cs những gì bạn đã yêu cầu? –

Trả lời

24

Bạn cần thêm một số đối tượng Trình cài đặt vào bộ sưu tập Trình cài đặt. Ví dụ here là những gì bạn muốn để cài đặt dịch vụ windows. Một cái gì đó như

[RunInstaller(true)] 
public class Installer : System.Configuration.Install.Installer 
{ 
    private ServiceInstaller serviceInstaller; 
    private ServiceProcessInstaller processInstaller; 

    public Installer() 
    { 
     // Instantiate installers for process and services. 
     processInstaller = new ServiceProcessInstaller(); 
     serviceInstaller = new ServiceInstaller(); 

     // The services run under the system account. 
     processInstaller.Account = ServiceAccount.LocalSystem; 

     // The services are started manually. 
     serviceInstaller.StartType = ServiceStartMode.Manual; 

     // ServiceName must equal those on ServiceBase derived classes. 
     serviceInstaller.ServiceName = "Hello-World Service 1"; 

     // Add installers to collection. Order is not important. 
     Installers.Add(serviceInstaller); 
     Installers.Add(processInstaller); 
    } 
} 
Các vấn đề liên quan