'Could not load file or assembly' 作为控制台应用程序 运行 时出现异常
'Could not load file or assembly' exception when running as a console app
我有一个新的 .NET Core 2.0 控制台应用程序。每当我尝试添加一个 NuGet 包时,例如 Newtonsoft.Json,我在程序启动时收到以下异常:
System.IO.FileLoadException: 'Could not load file or assembly 'System.Threading, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)'
这不知何故发生在 System.Console.ReadLine() 上,当我删除 Newtonsoft.Json 包时,一切又恢复正常了。现在,Newtonsoft.Json 只是一个示例,我可以添加 System.Data.SqlClient,同样的事情也会发生。有时无法加载与上述异常中提到的程序集不同的程序集。
我已经包含了项目。另外,我可以很容易地重现这个问题,因为我无数次创建了新的 .NET Core 2.0 控制台应用程序来查看我的项目是否以某种方式损坏。
我的项目(最后 运行 在 Visual Studio 预览):https://ufile.io/yp9xd
编辑 1:我重新安装了 Visual Studio 2017,现在我只是 运行ning 非预览版。我还重新安装了 .NET Core 2.0 并清除了 NuGet 缓存。这一切都没有占上风。同样的结果继续嘲笑我。
编辑2:我找到了问题的根源。交叉引用:https://github.com/JamesNK/Newtonsoft.Json/issues/1423
已确定问题的原因。将以下配置设置为 csproj 文件时,您会遇到我的问题。
<BaseIntermediateOutputPath>any-name-except-obj</BaseIntermediateOutputPath>
我有一个新的 .NET Core 2.0 控制台应用程序。每当我尝试添加一个 NuGet 包时,例如 Newtonsoft.Json,我在程序启动时收到以下异常:
System.IO.FileLoadException: 'Could not load file or assembly 'System.Threading, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)'
这不知何故发生在 System.Console.ReadLine() 上,当我删除 Newtonsoft.Json 包时,一切又恢复正常了。现在,Newtonsoft.Json 只是一个示例,我可以添加 System.Data.SqlClient,同样的事情也会发生。有时无法加载与上述异常中提到的程序集不同的程序集。
我已经包含了项目。另外,我可以很容易地重现这个问题,因为我无数次创建了新的 .NET Core 2.0 控制台应用程序来查看我的项目是否以某种方式损坏。
我的项目(最后 运行 在 Visual Studio 预览):https://ufile.io/yp9xd
编辑 1:我重新安装了 Visual Studio 2017,现在我只是 运行ning 非预览版。我还重新安装了 .NET Core 2.0 并清除了 NuGet 缓存。这一切都没有占上风。同样的结果继续嘲笑我。
编辑2:我找到了问题的根源。交叉引用:https://github.com/JamesNK/Newtonsoft.Json/issues/1423
已确定问题的原因。将以下配置设置为 csproj 文件时,您会遇到我的问题。
<BaseIntermediateOutputPath>any-name-except-obj</BaseIntermediateOutputPath>