我有一个基于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版本的程序集。
我该如何解决这个问题?
答案 0 :(得分:1)
我设法通过使用dotnet CLI而不是VS2017来自行发布。
之后我发现我的问题与此问题有关:https://github.com/dotnet/core/issues/857