2010-04-20 85 views
13

我在其中一臺服務器上安裝了.net 4框架。在目標服務器上安裝.net 4項目 - 錯誤System.BadImageFormatException

當我跑在Visual Studio中創建一個安裝項目 - 收到以下錯誤:

Error 1001 Exception occurred while initializing the installation. System.BadImageFormatException: Could not load file or assembly or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

我肯定安裝在目標機器上的.NET框架4 - 這是怎麼回事?

回答

23

我終於找到了解決這一點,並在博客吧:Deploying .NET 4 Project – Error 1001 (System.BadImageFormatException)


更新:複製從blog內容:

「上週出席英國科技日活動後在倫敦,我渴望跳上Visual Studio 2010和.net 4.0的潮流

我將我們的一些項目在Crocus轉換爲.net 4框架(其中w因爲非常容易 - 沒有任何破壞!) 我甚至利用了一些快速實現.net 4中的功能,並將我們的一些大規模覆蓋方法轉換爲使用可選參數。

一個項目特別是一個Windows服務,它按計劃發送訂單。 (我最近寫了關於Quartz.net期待UTC開始時間的情況如何破解)

這有一個Visual Studio與它關聯的部署項目。

建設新升級的.NET 4版本的項目,並部署.msi文件到我們的目標服務器後,我得到了以下錯誤:

Error 1001 Exception occurred while initializing the installation. System.BadImageFormatException: Could not load file or assembly or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded.

現在,我已經肯定升級所述服務器.net 4(兩次,事實上 - 在我第一次收到這個錯誤之後!)

一些谷歌搜索後,有人說要更改我的程序集上的platform target,但是無濟於事。

我最終發現了這個問題。

您需要設置.NET Framework Launch Condition

這裏是如何做到這一點:

  1. 右鍵單擊在Solution Explorer中部署項目。 在上下文菜單中,選擇查看 - >啓動條件
  2. 在 '版本' 選擇」 .NET Framework 4' 的

重新構建和部署我的設置文件後,一切正常「

+0

我遇到同樣的問題。無論如何,您的鏈接在工作時被阻止。出於某種原因,它被標記爲惡意網站。你能爲我指出正確的方向嗎? – Kevin 2010-07-28 19:00:58

+0

我很幸運,在我的網站上有那條褲子牛病毒 上面的答案是做什麼的總結。 – Alex 2010-07-29 18:36:06

+0

答案是一個斷開的鏈接。太糟糕了,真的需要這個。 – 2011-03-24 21:03:29

10
  1. 單擊安裝程序項目,然後轉到項目>屬性。
  2. 點擊先決條件按鈕
  3. 檢查「的Microsoft .NET Framework 4(x86和x64)」複選框,並取消在先決條件窗口,在屬性窗口中點擊OK框架
  4. 的早期版本。
  5. 右鍵單擊安裝項目,去查看>啓動條件
  6. 突出.NET框架條件和更新性質以下字段框
    一個。安裝URL:http://msdn.microsoft.com/en-us/netframework/aa569263.aspx
    b。版本:.NET Framework 4
  7. 重建安裝程序
+1

這解決了我的問題。謝謝。 – 2011-03-29 19:02:23

+0

這並不能解決我的問題。一切都設置爲x64和.NET Framework 4,並且我仍然遇到此錯誤。 – Triynko 2013-07-22 19:01:42

相關問題