2017-08-17 91 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>,这解决了我的问题。