无法在从VS2015到VS2017的ASP.Net核心迁移中加载文件或程序集'System.Diagnostics.DiagnosticSource

时间:2017-03-08 14:57:23

标签: authentication asp.net-core facebook-login visual-studio-2017

我在ASP.Net Core(4.6.1框架)中有一个Web,它使用我在Visual Studio 2015中创建的Facebook和MS外部登录,并在昨天发布的新Visual Studio 2017中打开。 VS2017做了一些与csproj,project.json等文件相关的更改。

除了一部分外,该网站编译并执行得很好。如果我进行了Facebook或Microsoft外部登录,该网站会显示此陷阱:

index.html

浏览器中的网址显示它正在尝试从外部登录返回到本地(https://localhost:44321/signin-facebook?code= ...或/ signin-microsoft)。

System.Diagnostics.DiagnosticSource.dll(和System.Net.Http.dll)的版本号是4.6.24705.1。

我从头开始了一个新的VS2017项目,添加了Facebook和MS登录,它运行良好 - 让我登录而没有陷阱。这些dll的版本相同。

比较两个csproj文件显示出差异,但没有任何明显的结果(与系统dll无关):

Differences in csproj file

4 个答案:

答案 0 :(得分:33)

为我解决的是将System.Net.Http(版本4.3.1)的NuGet引用添加到新迁移的项目中。 https://www.nuget.org/packages/System.Net.Http/

答案 1 :(得分:3)

在参考文献“System.Diagnostics.DiagnosticSource”中未包含在解决方案中

在 NUget 中安装“System.Diagnostics.DiagnosticSource”的最新版本“5.0.1”解决了我的问题。希望它也能解决你的问题。

答案 2 :(得分:0)

建议的答案无法解决我的问题。尝试在.Net Core 2项目中引用.Net 4.6.2 lib时出现此错误。

要解决此问题,我必须添加Microsoft.Windows.Compatibility nuget程序包。 归功于:https://medium.com/@ans_ashkan/asp-net-core-and-windows-event-log-75770a80a666

答案 3 :(得分:0)

使用通过.NET Core Web应用程序进行监控的人们会遇到此问题,这些.NET Core Web应用程序由托管在App Services中的Application Insights监视

.NET Core Web应用程序依赖于'System.Diagnostics.DiagnosticSource%u2019二进制文件,并且将此二进制文件部署到/ wwwroot /文件夹时,这种情况很少见。

解决方法:如果遇到上述问题,请通过更改此应用程序设置来设置监视扩展的先前版本:ApplicationInsightsAgent_EXTENSIONVERSION = 2.8.24

完成此操作后,请重新启动应用程序。

这里是source