aspnet core 1.1,msbuild,BadImageFormat加载System.Runtime.InteropServices.RuntimeInformation

时间:2016-11-17 13:03:36

标签: c# asp.net-mvc visual-studio-2015 .net-core

我在 Windows 10 上引用了 aspnet核心 完整.net框架4.6.1 的解决方案,引用了其他csprojs同样的解决方

所有项目都使用 project.json 作为nuget(而不是package.config)。

昨天一切都按照预期工作,从visual studio编译,或使用msbuild从命令行编译。 在将我的aspnet核心1.0.1更新为1.1之后,使用visual studio编译的一切都很好,但是当我使用msbuild构建时,构建成功,但是使用

启动webserver

dotnet run projectfolder

红隼,更确切地说是 microsoft.aspnetcore.hosting 会引发异常:

System.BadImageFormatException: Could not load file or assembly 'System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0...

这是一个已知的错误吗?在1.1版本之后也可以使用msbuild吗?

提前谢谢你,

安德烈

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,并且能够通过明确指定要构建的项目来解决此问题。尝试...

msbuild.exe solutionfile.sln /t:ProjectName

其中ProjectName是您要启动的项目(更多详细信息如何指定项目 - https://msdn.microsoft.com/en-us/library/ms171486.aspx?f=255&MSPPError=-2147217396)。

在我的情况下,它取决于msbuild如何选择构建项目依赖(使用project.json的经典类库)。如果它在构建xproj之前选择构建它们,那么它会失败并出现您提到的相同异常。当它们在xproj构建的上下文中构建时,它可以工作。请参阅您在gihub问题https://github.com/aspnet/Home/issues/1824中的回复,了解更多详情和简单版本。

答案 1 :(得分:0)

我无法在您的github示例中重复,但我确实解决了直接针对项目的问题。 在我的情况下(我想知道为什么)我无法使用/ t:ProjectName,我不得不使用

msbuild ./Folder/ProjectName.xproj