2011-09-30 132 views
2

我遇到了一個應用程序的問題,我最近從.Net 2.0升級到.Net 4.0。在安裝過程中,自定義操作開始執行並引發錯誤。從.Net 2.0的Windows Installer自定義操作到.Net 4.0自定義操作 - BadImageFormatException

===記錄開始時間:2011/9/30 2時34分09秒=== 錯誤1001錯誤在初始化安裝時發生異常1001: System.BadImageFormatException:無法加載文件或程序集「文件:/// C:\ Program Files \ MyPath \ MyCustomAction.dll'或其依賴項之一。此程序集由比當前加載的運行時更新的運行時構建,無法加載.. ===日誌記錄已停止:2011/9/30 2:34:30 ===

請注意,應該卸載舊的先安裝應用程序的版本,然後安裝新版本的應用程序,安裝成功無誤。

我唯一能猜到的是.Net 2.0自定義操作未能被Windows Installer加載,因爲它與我的應用程序的最新版本使用的.NET 4.0框架不一樣。有沒有人遇到過這個?

回答

1

你一定要設置在vdproj運行條件(它不與您的自定義操作的項目更新):

http://msdn.microsoft.com/en-us/library/kz0ke5xt.aspx

在解決方案資源管理器中,單擊安裝項目。

在視圖菜單上,指向編輯器,然後單擊啓動條件。

單擊.NET Framework。

在「屬性」窗口中,將Version屬性更改爲您希望安裝項目檢查並安裝的.NET Framework版本。

+0

我已經添加了默認的.net框架自定義操作。面向.Net 4.0客戶端配置文件框架(我也嘗試過非客戶端配置.Net 4.0框架)。啓動條件在安裝過程中不會引發任何錯誤。直到自定義操作開始執行時纔會發生錯誤。我已閱讀您提供的鏈接中的內容,甚至嘗試通過ORCA調整MSI。仍然無法得到這個工作。有沒有人有升級以前有.Net 4.0自定義操作的.NET 2.0自定義操作的應用程序的經驗? –

+0

因此,您100%確定所需版本(不是先決條件)中運行時所需版本的條件設置爲.NET 4.0?在將自定義操作更新到4.0後,我一次又一次遇到了完全相同的錯誤,這一直是問題所在。 – Jeff

+0

由於我是從MSI安裝的,所以前期需求沒有被評估(至少最後我知道Windows安裝程序)。如果我點擊我的設置項目,我會轉到啓動條件圖標,並且在目標機器上的要求下,我的搜索目標機器節點是空的(沒有任何內容),並且我有啓動條件節點,其中有1個項目在它下面。 .Net框架。 .Net Framework啓動條件的屬性爲:名稱:「.Net Framework」,InstallURL:「http://go.microsoft.com/fwlink/?LinkId=76617」,消息:「[VSDNETMSG]」和版本:「.Net Framework 4客戶端配置文件」。 –