我已經在VS 2010中使用安裝項目創建了一個安裝程序。它將我的應用程序安裝到程序文件文件夾中讓我們說XXX。我的應用程序進一步創建一些文件和文件夾到XXX文件夾。在卸載時,它會刪除由安裝程序創建的所有內容,而由我的應用程序創建的文件和文件夾仍保留在XXX中。如何在卸載時刪除應用程序文件夾
我寫了一些自定義代碼來使用installerclass刪除文件夾(XXX),但是當用戶從控制面板上卸載時執行成功時不會執行,當從我創建的安裝程序卸載時成功執行。
回答
我不認爲你應該寫的任何自定義代碼,如果您所有的文件被標記爲臨時的,不是永久的,這將直接由MSI引擎處理。
玩文件夾,文件和安裝項目本身的配置和屬性,你會得到你所需要的,沒有代碼寫入。
你能幫我解決上述問題嗎?在我的情況下,我的應用程序在運行時創建了幾個文件,導致從控制面板卸載MSI的過程不去除包含文件的文件夾。我的要求是卸載MSI所有與wwwroot文件夾一起存在的文件夾應該被刪除並且wwwroot文件夾必須是乾淨的。你能幫我解決這個問題嗎? –
我用PowerShell腳本卸載MSI,並在該代碼現在我打電話給下面的PowerShell,它可以幫助我刪除文件夾中的所有文件夾:刪除項目「C:\ Temp \ Fldr \ *」 - 強制 - 撤消 - ErrorAction SilentlyContinue並解決了問題。 –
第一步是修改您的應用程序,以便將其數據寫入每個用戶的位置而不是應用程序文件夾。例如,您可以在當前用戶的AppData目錄中使用自定義文件夾。這樣您可以避免與權限相關的問題。
要刪除此文件夾,您確實可以使用自定義操作。如果它在您的安裝項目中的卸載下添加,它應該同時運行控制面板和程序包卸載。
嘗試創建一個並搜索您的自定義操作名稱以查看會發生什麼。
我的猜測是您的自定義刪除文件操作安排在UI部分。當從控制面板啓動卸載時,它將以最小UI模式運行,並跳過所有對話框。
您的自定義操作必須安排在InstallExecute
表中。
(與UAC兼容的,它必須是推遲與noimpersonate。然而,你的應用程序本身不兼容UAC,因此它並不真正的問題。)
- 1. 如何在卸載應用程序時刪除臨時文件夾
- 2. 如何在卸載應用程序時刪除文件
- 3. 如何在卸載黑莓應用程序時刪除文件夾
- 4. 如何在C#.NET應用程序中卸載時刪除文件夾?
- 5. NSIS:卸載時刪除文件夾
- 6. 如何刪除一個文件的卸載android應用程序?
- 7. 刪除一個文件夾,同時卸載我的應用程序,Windows 7
- 8. NSIS卸載程序不會刪除文件/文件夾
- 9. 如何在卸載應用程序時刪除數據?
- 10. 如何在卸載應用程序時從SDcard中刪除文件
- 11. 如何在卸載時從應用程序數據目錄中刪除文件?
- 12. 如何在卸載應用程序時保留應用程序的文件夾和下載文件
- 13. 刪除應用程序時是否刪除文檔文件夾?
- 14. 卸載msi刪除應用程序
- 15. Installshield,卸載程序不會刪除所有文件夾
- 16. 刪除User.config在卸載程序時
- 17. 如何在Android中卸載我的應用程序時從SDCard中刪除文件夾?
- 18. 卸載時刪除文件和文件夾
- 19. Android - 保存或刪除應用程序在卸載時創建的文件
- 20. Android - Sqlite數據庫文件在卸載應用程序時未被刪除?
- 21. 在卸載應用程序時刪除SQLite數據庫
- 22. 捕獲應用程序在iPhone中刪除或卸載事件
- 23. 卸載應用程序後必須刪除已安裝的應用程序文件夾嗎?
- 24. 將數據庫保存在應用程序文件夾中,當卸載應用程序時不會清除
- 25. 完全刪除Winform應用程序卸載時的所有文件夾和文件?
- 26. 卸載應用程序圖標時,應用程序是卸載
- 27. 外部文件夾在安裝和卸載應用程序時在SDCARD中創建和刪除
- 28. 空氣,如何刪除卸載文件夾?
- 29. Android 6.0 - 應用程序卸載時將刪除外部存儲文件
- 30. 如何在android應用程序卸載時從sdcard中刪除數據?
@Davide我知道這並不回答你的問題,但你應該避免在你的應用程序安裝文件夾中寫入任何東西 - 沒有適當權限的用戶可能會導致你的應用程序失敗。 (OTOH,我承認,即使您寫入AddData或類似的文件,您的卸載問題仍將保留) –
感謝Davide的建議,我會牢記這一點。 – Vipul