MVC Core自包含包含4.6.x System。* dll

时间:2018-05-16 02:53:21

标签: c# .net-core publish

我有一个基于dotnet core 2.0的VS2017解决方案,它包含一个MVC Core网站和一个netcore 2.0控制台应用程序以及许多类库。

所有项目都面向NetCoreApp 2.0.7

当我将我的任何项目发布为linux-x64的自包含时,在Debian 9上运行时出现错误,说明了在清单中引用了System.ComponentModel 4.3.0但是找不到。

查看.deps.json文件时,我看到它引用了4.3.0,但发布输出文件夹中的文件是4.6.2x完整框架版本。

我尝试清除所有nuget缓存但仍然是同样的问题。 我注意到其他System。*程序集也是4.6.2x。

我在构建或发布时看不到任何错误或警告。 查看netcoreapp linux-x64的.nuget包文件夹时,我发现没有版本的System.ComponentModel。

我也尝试以win10-x64的形式发布自包含版,它仍然发布了4.6.2x版本的程序集。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我设法通过使用dotnet CLI而不是VS2017来自行发布。

之后我发现我的问题与此问题有关:https://github.com/dotnet/core/issues/857