正在卸載程式集“D:\CrossEcom\CrossEcom\CrossEcomWin\bin\Debug\CrossEcom.exe”。
受影響的引數是:
assemblypath = D:\CrossEcom\CrossEcom\CrossEcomWin\bin\Debug\CrossEcom.exe
logfile = D:\CrossEcom\CrossEcom\CrossEcomWin\bin\Debug\CrossEcom.InstallLog
正在移除 EventLog 源 CrossEcomService。
警告: 源 CrossEcomService 未在本地計算機上注冊。
正在從系統中移除服務 CrossEcomService...
在卸載 System.ServiceProcess.ServiceInstaller 安裝程式的程序中發生例外。
System.ComponentModel.Win32Exception: 指定的服務未安裝。
在卸載的程序中發生例外。將忽略該例外并繼續卸載。但是,在卸載完成之后應用程式可能未完全卸載。
uj5u.com熱心網友回復:
uj5u.com熱心網友回復:
有沒有高人來幫幫忙看看啥問題呀uj5u.com熱心網友回復:
對于服務一般需要先停止服務然后在卸載uj5u.com熱心網友回復:
停止了再卸載發生了同樣的例外
uj5u.com熱心網友回復:
public static void UninstallService(string ServicePath)
{
TransactedInstaller transactedInstaller = new TransactedInstaller();
AssemblyInstaller assemblyInstaller = new AssemblyInstaller(ServicePath, new string[] { });
transactedInstaller.Installers.Add(assemblyInstaller);
transactedInstaller.Uninstall(null);
transactedInstaller.Dispose();
}
看看這個,這是我自己用的,運行木問題。如果在出問題,可以檢查一下路徑
uj5u.com熱心網友回復:
另外建議重啟一下機器在除錯,系統對服務卸載例外會做個標記,等待下次啟動后在處理,使用如果出現問題,可以重啟后在看uj5u.com熱心網友回復:
重啟了 還是這個例外,我在想 會不會之前卸載的時候沒有先停止, 然后先卸載掉了一部分, 然后后面卸載的時候,有些在上一步被卸載了, 所以這次卸載的時候找不到。有沒有這個可能?
uj5u.com熱心網友回復:
電腦重啟是一個好東西,,,我重啟了服務就沒了,,,uj5u.com熱心網友回復:
停止服務要等一會,才能停止,.net的服務需要平滑關閉,這時候你如果更新程式集,是會報使用中的錯誤的,要等一會才行,不象go,平滑關閉全得自已做,.net替你做好了,你也得知道有這回事啊。uj5u.com熱心網友回復:
而且卸載服務,我一般是用InstallUtil.exe 運行cmd命令卸載的。uj5u.com熱心網友回復:
動態熱更新服務,建議使用 .net framework 中的 MEF 框架。uj5u.com熱心網友回復:
對于復雜任務,不要過于底層,要從高層著手,使用多年來一直存在的成熟類別庫。uj5u.com熱心網友回復:
自己寫的“底層”代碼,你覺得卸載了,但是記憶體中還在。或者是就算是把 .net 運行時環境的快取清理了,能識別新版本的 .dll 庫了,兼容性很不好。轉載請註明出處,本文鏈接:https://www.uj5u.com/net/31286.html
標籤:C#
