2012-01-30 14 views

cevap

9

Installutil gerekli, ancak işleri kolaylaştırmak için bir Kurulum projesi oluşturabilir, böylece hizmeti yüklemek için bir .msi çalıştırın. (Bu başlık altında installutil kullanır, ancak kurulumu büyük ölçüde kolaylaştırır.)

Bir örneklerde burada: http://support.microsoft.com/kb/816169

Ve başka buradadır: http://msdn.microsoft.com/en-us/library/zt39148a(VS.80).aspx

ikisi arasındaki temel fark kodu miktarıdır numunelerde. İkiniz de aynı süreci ele alırlar.

Bağlantılı olan makaleler eski ancak hala VS2010'da geçerlidir. Ben sadece geçen hafta bir VS2010 hizmeti için süreç boyunca yürümek için ikinci makaleyi kullandım.

+0

Açıklama için teşekkürler. İkinci makaleyi de büyük başarı ile kullandım. Ancak benim hizmetim içinde, hizmetimin oluşturduğu dosyaların çıkış konumunu belirleyen bir dosya yoluna sahip değişkenim var. Yine de, kullanıcının istediği yere yazabilmesi için bir yer var mı? – Simon

+0

ya da bir .bat fle ile sintall'a bakmalı mıyım? – Simon

+1

Değerler .config dosyasındaysa bunu yapabilirsiniz. Burada, Setup Project kurulum senaryosunda app.config değerlerinin nasıl değiştirileceğini gösteren bir eğitici var. Kullanmamıştım, ama biraz uyuşuyor. http://raquila.com/software/configure-app-config-application-settings-during-msi-install/ – David

4

Neden yükleme işlemlerinden kaçınmak istiyorsunuz? Sen sc create ...

DÜZENLEME olduğu gibi sc komutunu kullanarak deneyebilirsiniz

: İşte bunun için bir MSDN sayfası: Sen defteri girdileri ile bunu her zaman yapabilirsiniz http://support.microsoft.com/?kbid=251192

DESCRIPTION: 
     Creates a service entry in the registry and Service Database. 
USAGE: 
     sc <server> create [service name] [binPath= ] <option1> <option2>... 

OPTIONS: 
NOTE: The option name includes the equal sign. 
     A space is required between the equal sign and the value. 
type= <own|share|interact|kernel|filesys|rec> 
     (default = own) 
start= <boot|system|auto|demand|disabled|delayed-auto> 
     (default = demand) 
error= <normal|severe|critical|ignore> 
     (default = normal) 
binPath= <BinaryPathName> 
group= <LoadOrderGroup> 
tag= <yes|no> 
depend= <Dependencies(separated by/(forward slash))> 
obj= <AccountName|ObjectName> 
     (default = LocalSystem) 
DisplayName= <display name> 
password= <password> 
+0

Bu iyi bir tanesi. Bunu unutmuştum. MSI dosyalarını nasıl dava edeceğimi öğrenmeden önce bunu ilk hizmetimde kullandım. Bu, altında çalıştırılacak hizmet için varsayılan kullanıcı adı ve parola ayarlamak gibi InstallUtil ile yapamayacağınız şeyler yapmanıza olanak sağlar. +1. – David

+0

, [binPath =] 'a özellikle dikkat etmeli, = ve yolunuzun başlangıcı arasında bir boşluk olmalıdır. Bu bana birçok kez sahip oldu. – AndyM

2

.
Anahtarlar, HKLM\SYSTEM\CurrentControlSet\services

içerisinde bulunmaktadır. Oluşturduğunuz anahtar hizmetin, servis işleyicinizin katıştırılmış adıdır. Aşağıdaki değerler ilgilidir:

ImagePath = FQ Dosya adı

hizmet yürütülebilir

Start (DWORD) başlangıç ​​type = (3 = otomatik) hizmetleri yöneticisinde görüntülenen alır

DisplayName = metin

DelayedAutoStart (DWORD) = (1 = gecikmiş)

WOW64 (DWORD) = (0 = 64 bit uygulaması, 1 = 32 bit uygulaması)

ErrorControl (DWORD) = 0

ObjectName = {username} diğer değerlerin çok var (sistem hesabı için LocalSystem)

altında çalıştırmak için, ama bu başlangıç ​​almalısınız.

İlgili konular