我们最近将ASP.NET Core项目从旧的project.json格式迁移到新的.csproj格式。
我们的开发机器上的一切运行良好。但是,一旦在服务器上部署了应用程序,IIS就无法启动具有502.5(进程失败)异常的应用程序。 Windows事件日志提到了libuv.dll的BadImageFormatException。
有没有人遇到过这个?可能是问题的根源是什么?
答案 0 :(得分:1)
显然,当ASP.NET Core项目迁移到csproj格式时,在某些条件下,生成的csproj将不会收到明确的<PlatformTarget>
。
在进行常规构建与发布时,Visual Studio似乎没有相同的行为。
在两个基础中,它将构建一个带有32BITREQ标志的PE32可执行文件(仅限32位)。但是在发布时,它将部署64位库,导致上述BadImageFormatException,而在非发布版本中则不会这样做。
解决方案:在项目属性页面中,重新选择下拉列表中的平台。如果事件没有任何视觉效果,则会在保存时向csproj添加显式<PlatformTarget>
,这样就解决了我的问题。