无法在从VS2015到VS2017的ASP.Net Core迁移上加载文件或程序集'System.Diagnostics.DiagnosticSource [英] Could not load file or assembly 'System.Diagnostics.DiagnosticSource on ASP.Net Core migration from VS2015 to VS2017
问题描述
我有一个使用ASP.Net Core(4.6.1框架)的网站,该网站使用我在Visual Studio 2015中创建并在昨天发布的新Visual Studio 2017中打开的Facebook和MS外部登录名. VS2017对csproj,project.json等文件进行了一些更改.
I have a web in ASP.Net Core (4.6.1 framework) that uses Facebook and MS external login that I created with Visual Studio 2015 and opened in the new Visual Studio 2017 that came out yesterday. VS2017 made a few changes related to the csproj, project.json, etc files.
除了一部分以外,该网站的编译和执行情况很好.如果我进行了Facebook或Microsoft外部登录,则该网站将显示此陷阱:
The site compiled and executed fine except for one part. If I did a Facebook or Microsoft external login, the site displayed this trap:
FileLoadException: Could not load file or assembly 'System.Diagnostics.DiagnosticSource, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
System.Net.Http.WinHttpHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
AggregateException: Unhandled remote failure.
Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler+<HandleRemoteCallbackAsync>d__6.MoveNext()
浏览器中的url显示它正在尝试从外部登录名返回到本地( https ://localhost:44321/signin-facebook?code = ...或/signin-microsoft).
The url in the browser showed that it was attempting to return from the external login to the local (https://localhost:44321/signin-facebook?code=... or /signin-microsoft).
System.Diagnostics.DiagnosticSource.dll(和System.Net.Http.dll)的版本号是4.6.24705.1.
The version number of the System.Diagnostics.DiagnosticSource.dll (and System.Net.Http.dll) is 4.6.24705.1.
我从头开始了一个新的VS2017项目,并添加了Facebook和MS登录,它运行良好-使我无需任何陷阱即可登录. dll的版本相同.
I started a new VS2017 project from scratch with Facebook and MS login added and it worked fine - getting me logged on without the trap. The dll's were the same versions.
比较两个csproj文件显示出差异,但是没有什么明显的区别(与系统dll没有任何关系):
Comparing the two csproj files showed differences but nothing obvious (nothing related to System dlls):
推荐答案
为我解决的问题是向新迁移的项目添加对System.Net.Http(版本4.3.1)的NuGet引用. https://www.nuget.org/packages/System.Net.Http/
What solved it for me was to add a NuGet reference to System.Net.Http (version 4.3.1) to the newly migrated project. https://www.nuget.org/packages/System.Net.Http/
这篇关于无法在从VS2015到VS2017的ASP.Net Core迁移上加载文件或程序集'System.Diagnostics.DiagnosticSource的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!