2015-05-19 56 views
-1

我有一個程序在安裝時啓動Windows服務,並在卸載時刪除Windows服務。但是,在我偶然修改了安裝程序(我的錯!)後,它拒絕卸載。 https://support.microsoft.com/en-us/mats/program_install_and_uninstall微軟修復註冊表問題

利用這一點,我設法最後取出程序本身:我不能,因爲它不停地拋出一個錯誤2715,我發現在這篇文章中有一個皿程序,從程序和功能,甚至將其刪除。但是,現在,當我嘗試再次安裝和卸載它(測試我的更改)時,附加的Windows服務不會被刪除。事實上,它繼續運行。我檢查了註冊表,並確實在卸載後服務的密鑰仍然存在。我需要手動停止它並做一個sc delete來擺脫它。有關我如何解決這個問題的任何想法?

編輯:我能夠在另一臺計算機上覆制該問題。我所做的是,我在那裏安裝程序,然後使用Fix It工具將其刪除。完成此操作後,我可以輕鬆地複製該問題,因爲卸載後該服務永遠不會被刪除。它在此之前正常工作。

回答

-1

這裏有些猜測,因爲沒有足夠的信息....

Eroor 2715是Windows Installer錯誤,我懷疑這是關係到你運行的程序(如你描述它)來啓動和停止服務。我猜測你將它作爲cuatom動作運行,卸載後嘗試運行它,但由於它已被卸載,因此缺少它。

所以:

  1. 這fixit來治癒不是一個破碎的MSI(這是你) - 這是用於固定,防止腐敗卸載註冊表數據,不卸載修復一個破碎的MSI。

  2. 您不需要運行代碼來啓動和停止並刪除服務。大多數MSI構建工具都支持Windows Installer功能,可以爲您做到這一點,所以請不要這樣做!

  3. 如果不知道你用什麼來構建你的MSI,以及你是如何運行你的程序的話,更具體的答案是很困難的,但是標誌指出你在程序被刪除後運行程序,即使你讓程序正常運行,沒有看到代碼就無法判斷它是否正確。但是2是你應該做的。

+0

雖然MSI工作正常。我已經在另外兩臺電腦上試過了,它工作正常。我所做的是我重建了我在卸載前修改的安裝程序。 – JasonY

+0

如果您有時會遇到2715錯誤,MSI實際上無法正常工作!這個問題似乎與運行你的程序有關,這是不必要的。也許是時間問題,誰知道?同樣,如果沒有詳細的卸載日誌和其他信息,這是另一個猜測,但Windows安裝程序將啓動和停止服務,而無需編寫代碼,因此絕大多數安裝開發人員只需告訴MSI啓動/停止/刪除任何服務。 – PhilDW

+0

當我嘗試使用MSI進行卸載時,會彈出一個要求停止服務的提示並重試。我需要將其自動化,所以我在MSI嘗試驗證它之前插入了一個自定義操作。我再次強調MSI的工作原理。我現在已經在2臺VM和3臺其他開發PC上進行了測試。我也設法複製這個問題,如果我要安裝該程序並使用Microsoft FixIt卸載它(就好像它有問題一樣),它會導致這個問題。這是在另一臺PC上完成的,我所做的只是安裝它,然後使用Microsoft FixIt進行卸載。 – JasonY