1

我們有一個開發團隊開發Asp.Net MVC5解決方案,並且經常在做一個git pull以獲得其他開發人員更改後,我們需要使用任何新的數據庫遷移(實體框架6.1.3)已被添加。更新數據庫失敗 - BadImageFormatException

我們在軟件包管理器控制檯中運行update-database以更新數據庫。這工作,直到我們改變所有項目編譯x64輸出。解決內存需求需要哪些內容。

但是現在我越來越:

System.BadImageFormatException: Could not load file or assembly 'My.Data' or one of its dependencies. 
    An attempt was made to load a program with an incorrect format. 

當我運行Update-database。我在重新編譯之前清理了所有的bin和obj文件夾(以確保所有輸出將是相同的格式x64)。

看起來問題可能是migrate.exe與x64不兼容。 SOOriginal MSDN article

但是這篇文章是針對EF5的。這仍然是這樣嗎?是否有解決方法?如果不是它看起來奇怪,它不像x64或EF是Visual Studio的新增加。

回答

1

管理找到答案。

的問題是,啓用的遷移命令似乎有一個 硬編碼的路徑,其中EF尋找項目建成的DLL在 /斌/調試,無論實際的構建路徑是什麼。當您將 項目更改爲x64時,Visual Studio會悄悄地將項目的內部版本 路徑更改爲/ bin/x64/Debug - 而EF繼續查看/ bin/Debug。這 這個原因含糊System.BadImageFormatException

它是無害的,只是更改爲/ bin /調試和 神奇,一切都開始工作像它應該是你的項目構建路徑。

https://stackoverflow.com/a/23666717