build - vs2017 - windows installer visual studio 2017



MSI Build uninstall-已刪除已安裝的目錄 (1)

我為我們的應用程序創建了MSI構建包。 在此安裝之後,我們在安裝程序類的已提交事件中在單獨的進程中觸發了另一個依賴驅動程序軟件,如下所示,

Process.Start(“驅動軟件路徑”)

我們正面臨一個問題,安裝目錄(它是空的)文件夾在卸載時沒有被刪除。 實際上,就像安裝一樣,我們通過覆蓋安裝程序類的Uninstall方法在單獨的進程中觸發了相關驅動程序軟件的卸載。

有人,請幫助我克服這個問題? 我怎麼能刪除已安裝的目錄?

我無法更改安裝過程,因為我們知道在另一個安裝過程中我們無法處理另一個安裝/卸載。


您正在MSI中運行非MSI驅動程序安裝EXE? 正確? 或者它可能是一個包含在EXE中的MSI?

你有 Installshield Premier 嗎? 您可以使用 套件項目 並在安裝MSI之前(或之後)通過引導程序安裝EXE嗎? 我老實說從來沒有使用過這個功能,但按順序運行設置就是它的用途。 眾所周知,開啟EXE文件的MSI文件中的嵌入式自定義操作是不可靠的。 這是 - 在我看來 - 如果你運行託管代碼(我認為你是),尤其如此。

從長遠來看,託管代碼可能會產生更安全的自定義操作代碼(基於 CAS 安全性),但是現在它似乎會導致不必要的運行時依賴性 - 特別是針對不同Windows版本的大規模分發(全局分發)(Vista, 7,8,10)。

我被告知需要一段時間才能習慣Installshield的套件功能,但也許它對你更好? 您可以按順序運行EXE文件,MSI文件,修補程序和zip。 一些擺弄定義卸載和升級行為我想和很多測試。 我很確定企業應用程序打包器會很高興看到一個套件而不是一個MSI,其中嵌入了許多奇怪的東西。

更新 :編譯套件setup.exe文件後,可以按照此處所述解壓縮它: 使用Installshield 2013(.issuite)項目文件生成的Setup.exe進行靜默安裝

或者,您可以嘗試提取驅動程序安裝程序的setup.exe文件,並將驅動程序安裝為常規MSI組件,然後運行 DPinst.exe 以安裝/卸載驅動程序( DIFx 工具)。 也非常笨重 - 特別是當你需要包括卸載時。

您的驅動程序設置可能已使用DPInst.exe。 我會檢查你是否可以從EXE中提取MSI並使用它而不是EXE來包含在套件項目中。 有關如何處理setup.exe文件的一些提示(提取,運行時參數等...): 從EXE中提取MSI

WiX在其擴展 程序 中有一個 Driver元素 來處理驅動程序安裝。 我從來沒有機會測試它。





msiexec