2009-06-16 20 views
6

Hizmetimi kaldırdığımda, kaldırmadan önce böyle bir hizmeti durdurmam gerektiğini söylediğim yerde hata alıyorum. Bu tatmin edici değil - kaldırıcı otomatik olarak durdurmalıdır.Wix: Kaldırma işlemi sırasında bir Windows Hizmetini durdurma

Bu ay önce bir blog veya haber grubu ilanı buldum ve düzgün çalışmaya başladım, ama şimdi benim için çalışmayı durdurdu. Ve postayla bir bağlantım yok ... belki de başka biri nerede olduğunu biliyor mu? :) Sanırım bazı ince şeyleri değiştirdim ve çalışmayı bıraktı. Wix'i gidermek oldukça zor.

Kayıt defterinden X_ WIN_ SERVICE_ NAME (özür dilerim nasıl önleyeceğimi bilmiyorum) almak için aşağıdakileri kullanıyorum. Yüklemede önemli değil, çünkü bu durumda açıkça bir giriş dosyası ile ayarlıyorum. Bu içerir benim wxs dosyasındaki herhangi bir bileşen önce kullanılır. kurulumdan sonra benim sistemini kontrol ettikten

<Include xmlns="http://schemas.microsoft.com/wix/2006/wi"> 

<?ifndef WriteXWinServiceRegistryProperties ?> 
<?define WriteXWinServiceRegistryProperties ?> 

<Component Id="CompWriteXWinServiceRegistryProps" 
    Guid="some guid"> 

<!-- Write properties to the registry. Then they will be 
     accessable during uninstall. --> 

<RegistryValue Root="HKLM" 
    Key="$(var.XWinServiceRegistryKey)" 
    Name="ServiceName" 
    Type="string" 
    Value="[X_WIN_SERVICE_NAME]" 
    Action="write" /> 

</Component> 

<?endif?> 

</Include> 

ve kayıt defteri değeri düzgün orada yazılır:

<Include xmlns="http://schemas.microsoft.com/wix/2006/wi"> 

<?ifndef SetupXWinServiceRegistryProperties ?> 
<?define SetupXWinServiceRegistryProperties ?> 

<?define XWinServiceRegistryKey='Software\X\Y'?> 

<Property Id="X_WIN_SERVICE_NAME"> 
    <RegistrySearch Id="XWinServiceNameSearch" 
        Root="HKLM" 
        Key="$(var.XWinServiceRegistryKey)" 
        Name="ServiceName" 
        Type="raw"/> 
</Property> 

<?endif?> 
</Include> 

aşağıdaki

bileşeni yüklemek kayıt defteri değerini kaydetmek için kullanılır içerir. Hizmetin kurulumunun yapıldığı bileşendeki kısım şu şekildedir:

  <ServiceInstall Id="ServiceInstallXWinService" 
          Name="[X_WIN_SERVICE_NAME]" 
          Start="auto" 
          DisplayName="xxx" 
          Description="yyy" 
          Account="[X_WIN_SERVICE_USER]" 
          Password="[X_WIN_SERVICE_PASSWORD]" 
          Type="ownProcess" 
          ErrorControl="normal" 
          Vital="yes" /> 

      <ServiceControl Id="ServiceInstallXWinService" 
          Name="[X_WIN_SERVICE_NAME]" 
          Stop="both" 
          Remove="uninstall" 
          Wait="yes" /> 

Herhangi bir fikir?

cevap

4

X_WIN_SERVICE_NAME özelliğinin kaldırmada doğru değere ayarlandığından emin misiniz? Aramanın değeri doğru şekilde ayarlandığından emin olmak için ayrıntılı bir günlük dosyası kullanın. Herşey yolunda görünüyor (her şeyi neden Fragments yerine dosyaları dahil et diye bilmiyorum).

+0

haklısınız, bir şeyler hafif olmalıydı çünkü bazı ilgisiz değişiklikler yapıldıktan sonra tekrar çalışıyor: S – evilfred

İlgili konular