我有很多託管代碼Windows服務,我們使用Frameworks InstallUtil工具將其安裝到服務控制管理器中。此工具在安裝時創建一個新的文件,其擴展名爲.InstallState。我嘗試過刪除這個文件,然後卸載仍然正常。.Net Windows服務和InstallState文件 - 真的需要嗎?
所以我的問題是,這是什麼文件,是否有任何理由我不應該刪除它?
編輯5/3/10:真的嗎?沒有人知道這個文件的價值是什麼?
我有很多託管代碼Windows服務,我們使用Frameworks InstallUtil工具將其安裝到服務控制管理器中。此工具在安裝時創建一個新的文件,其擴展名爲.InstallState。我嘗試過刪除這個文件,然後卸載仍然正常。.Net Windows服務和InstallState文件 - 真的需要嗎?
所以我的問題是,這是什麼文件,是否有任何理由我不應該刪除它?
編輯5/3/10:真的嗎?沒有人知道這個文件的價值是什麼?
該文件應該被卸載過程刪除。如果您正在使用自定義安裝操作,則還應將其添加到卸載過程中。缺少.installstate文件不會阻止該服務被卸載。
http://adamhouldsworth.blogspot.com/2009/11/c-setup-installstate.html
的InstallState文件被用於卸載服務/組件中使用由InstallUtil.exe。其中包含的數據僅是卸載數據。如果您還沒有閱讀MSDN上的簡短引用,可以參閱here。
也許安裝程序包會正確卸載所有內容,但我不確定如果您自己手動/腳本調用InstallUtil,某個服務是否可以正確卸載。
這就是.InstallState文件的假定值。
在VS.NET中,您可以爲您的msi項目定義一個自定義對話框,我使用這樣的對話框來詢問SQL Server地址和憑據,msi將文本框中的所有信息存儲到InstallState文件中。卸載服務時,它將讀取InstallState文件中的值,並刪除在安裝階段創建的數據庫。在我的情況下InstallState文件是必須的,因爲如果文件在安裝後被刪除,則卸載將失敗。
「當服務被卸載時,它將讀取InstallState文件中的值,並將刪除安裝階段創建的數據庫」 Stefan的好回答。關鍵是......在卸載時,您很可能需要安裝時間自定義信息,例如服務器名稱,數據庫名稱等。如果刪除此文件,那麼您將從哪裏獲得信息?所以最好把那個文件放在那裏。 – 2013-08-04 20:43:36
我很欣賞引用hipplar,但我真的在尋找這個文件的功能以及它是否真正需要的信息。互聯網似乎沒什麼信息。 – BrettRobi 2010-05-03 21:26:40