构建解决方案将大量系统程序集复制到输出目录

时间:2018-11-30 10:16:46

标签: build visual-studio-2017

在VS 2017(15.9.3)中构建我的解决方案时,将 97 System.xxx.dll 复制到输出目录中,同时将无-框架dll。系统dll中有BCL,例如 System.Collections.dll System.Data.Common.dll System.Globalization.dll System.IO.dll < / em>。
该解决方案由4个小型C#项目(2个dll和2个WinForms)组成,其中有些NuGet引用了 log4net System.Data.SQLite Oracle.ManagedDataAccess Npgsql Npgsql 的依赖项。所有项目均以.NET Framework 4.6.2为目标,我不知道与其他项目中的项目设置不同,其他项目均未发生类似情况。
任何想法如何恢复“正常”行为?非常感谢...

1 个答案:

答案 0 :(得分:0)

这些可能是System。*程序集,它们作为软件包的NuGet依赖项提供,不一定是全局安装的.NET Framework的一部分。

例如,查看Npgsql的依赖项,我会看到以下依赖项:

  • System.Runtime.CompilerServices.Unsafe(> = 4.5.0)
  • System.Threading.Tasks.Extensions(> = 4.5.0)
  • System.ValueTuple(> = 4.5.0)

前两个不是Windows安装的.NET Framework的一部分。

类似地,System.Data.SQLite不是Microsoft软件包,也不是.NET Framework安装的一部分。它归SQLite团队所有,而他们恰好使用了System。*根名称空间。