采用.net 4.0框架開發的一個桌面應用程序在某學校的一體機(Windows7的32位操作系統)上做安裝部署時拋出異常,安裝程序回滾,多次嘗試仍不成功。
Error 1001. 在初始化安裝時發生異常 System.BadImageFormatException:未能加載文件或程序集”....“或它的某一個依賴項。
異常截圖如下:
該程序在Windows7的64位操作系統環境下安裝部署均正常,應用程序的生成目標平台為了兼容32位機器,選用的是X86
項目的安裝工程的屬性程序集配置如下:
項目安裝工程的屬性--系統必備如下:
好了,就是這樣了,生成的安裝包在上面提到的一體機上安裝拋出異常,在其他設備上安裝正常;
下面就是我的解決方案了:
第一步:我們檢查了機器的.net 4.0框架是否安裝完整;我們將機器上的.net 4.0框架卸載了重新安裝,再嘗試安裝異常依舊(排除了.net 4.0框架的問題);
第二步:我們檢查了機器的Windows組件是否安裝完整,打開機器的控制面板--程序--打開或關閉Windows功能,
我注意到用戶機器上的Windows Process Activation Service組件沒有安裝,我將“.NET環境”選中,點擊”確定“,等待系統安裝該組件;
做完上面的步驟,似乎看到了曙光,以為已經解決了問題,可是重啟機器后再嘗試重新安裝我們的應用程序,發現還是無法安裝成功;異常提示依舊。
原來Windows process activation service Windows進程激活服務似乎和我們的windows桌面應用程序是否能正常運行無關,只是通過刪除對 HTTP 的依賴關系,可統一 Internet 信息服務 (IIS) 進程模型。
此時,我們決定做個小測試,發現不僅我們的應用程序無法安裝,用.net 2.0 和 3.5分別編寫了一個簡單的控制台小程序,在該機器上依舊不能運行;
幾近崩潰啊!真是快崩潰了!
第三步:殺毒
我們檢查了一下用戶機器的任務管理器,發現有一些不明程序在運行, 由於用戶的一體機上沒有安裝殺毒軟件,莫非是中了病毒造成的?於是,我們對用戶機器進行了殺毒,一殺不要緊,竟然有376個文件感染了木馬,查殺出了十幾個木馬,殺毒的過程當時忘記截圖了,就不上圖了;
殺毒完成,重啟機器后,我們再嘗試安裝我們的應用程序,這次竟然成功了,成功了!
所以,程序員苦逼,原因莫過於如此了,很多時候,遇上都是非程序本身的問題,遂發文以紀念!