2017-08-17 135 views
1

我們最近將一個ASP.NET Core項目從舊的project.json格式遷移到了新的.csproj格式。ASP.NET Core BadImageFormatException for libuv.dll

一切在我們的開發機器上運行良好。但是,一旦應用程序部署在服務器上,IIS將無法啓動具有502.5(進程失敗)異常的應用程序。 Windows事件日誌提到了libuv.dll的BadImageFormatException。

有沒有人遇到過這個?什麼可能是問題的根源?

+0

@你可以更新你的問題,並顯示.csproj文件的內容? – user2771704

回答

1

顯然,當ASP.NET Core項目遷移到csproj格式時,在某些情況下,生成的csproj將不會收到明確的<PlatformTarget>

並且當進行通常的構建與發佈時,Visual Studio似乎不具有相同的行爲。

在這兩個基地,它將建立一個帶有32BITREQ標誌(僅32位)的PE32可執行文件。但是,在發佈時,它將一起部署64位庫,導致前面提到的BadImageFormatException,而在非發佈版本中則不會這樣做。

解決方案:在項目屬性頁面中,在下拉列表中重新選擇平臺。如果它沒有任何視覺效果,則會在保存時向csproj添加明確的<PlatformTarget>,這解決了我的問題。