2012-11-28 56 views
3

我一直在嘗試使用installutil安裝Windows服務:installutil /u GSIS.FileMoverService.exeInstallutil不會卸載:「指定的服務不存在作爲已安裝的服務」

我得到的輸出是:

卸載程序集 'C:\ FMS \ GSIS.FileMoverService.exe'。受影響的參數是:

logtoconsole =日誌文件= C:\ FMS \ GSIS.FileMoverService.InstallLog

assemblypath = C:\ FMS \ GSIS.FileMoverService.exe卸下事件日誌源文件移動器服務。

警告:源文件移動器服務未在本地計算機上註冊。服務文件移動器服務正在從系統中刪除...

在卸載System.ServiceProcess.ServiceInstaller安裝程序期間發生異常。 System.ComponentModel.Win32Exception:指定的服務不作爲已安裝的服務存在卸載時發生異常。

這個例外將被忽略,卸載將繼續。但是,卸載完成後,應用程序可能未完全卸載。

當我嘗試卸載時服務已停止。它絕對是作爲服務註冊的。我已重新啓動,並且它在服務小程序(services.msc)中仍然可見。它也可以從服務小程序中成功啓動和停止,因此它看起來不像是安裝不成功(或只是部分安裝)。

我從VS2010命令提示符(點擊以管理員身份運行)調用installutil。

任何想法?

回答

9

最後我用sc delete GSIS.FileMoverService來刪除服務。這工作。

+0

它是做什麼的? –

3

所以我期望這與你的類擴展System.Configuration.Install.Installer有關。在類的構造函數,你預計到System.ServiceProcess.ServiceProcessInstaller和System.ServiceProcess.ServiceInstaller添加到像安裝程序:

public MyServiceInstaller(string displayName = null, string description = null, ServiceAccount account = ServiceAccount.LocalSystem, string username = "", string password = "", ServiceStartMode startType = ServiceStartMode.Automatic, bool delayedAutoStart = false, string[] servicesDependedOn = null) 
{ 
    Installers.Add(new ServiceProcessInstaller 
     { 
      Account = ServiceAccount.LocalSystem, 
      Username = username, 
      Password = password 
     }); 
Installers.Add(new ServiceInstaller 
    { 
     ServiceName = GetType().Name, 
     StartType = startType, 
     DisplayName = displayName ?? serviceName, 
     Description = description ?? string.Empty, 
     ServicesDependedOn = servicesDependedOn, 
     DelayedAutoStart = delayedAutoStart 
    }); 

} 

中的ServiceInstaller服務名需要匹配分配到的ServiceInstaller的服務名稱時,服務已安裝。如果沒有,那麼你會得到這個異常,因爲它試圖卸載之前找不到安裝的服務。

相關問題