.net - 我的C#Visual Studio项目在编译时生成了太多的dll文件

标签 .net msbuild

我有一个Visual Studio Win Forms项目,可以正常工作。当我编译该项目以生成发行文件时,我看到我已经生成了30个dll。这些dll文件主要是System dll,所以我认为我不需要这些文件。如果删除此文件,我的应用程序将继续正常运行,但是我不知道如何对Visual Studio说,请不要生成这些文件。谁知道我该如何配置我的项目以避免生成所有这些文件?我的输出版本如下:

enter image description here

我知道我需要一些文件,但不需要系统文件。这是我的房地产项目:

enter image description here

如果我查看MSBuilder来分析正在发生的事情,则会看到以下内容:

enter image description here

enter image description here

我看不到是哪个图书馆。我现在应该做什么?

最佳答案

欢迎来到.NET标准DLL hell 。

您以完整的.NET Framework为目标,但是您已经安装了一个依赖于.NET Standard的NuGet软件包,这将导致MSBuild从其在Program Files中的安装目录中提取外观程序集。

查找(间接)依赖于.NET Standard的程序包,然后将其升级或降级为不依赖于.NET Standard的版本。

要分析:创建您的构建和open the log file的binlog,搜索_DependsOnNetStandard。然后,您将找到起作用的库,并且可以从那里处理依赖关系树。

一些软件包声称支持.NET Framework 4.x,但实际上在netstandard11中仅包含lib目录。

关于.net - 我的C#Visual Studio项目在编译时生成了太多的dll文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56647064/

相关文章:

c# - 从 windbg 的 clrstack 输出中获取对象详细信息

silverlight - MSBuild:如何在 Silverlight 构建中包含 "*.xaml"和 "*.cs"?

razor - 项目中不存在目标 "ResolveTagHelperRazorGenerateInputs"

iis - 如何防止 MSDeploy 任务重建程序集?

c# - Linq:除了两种不同类型的词典

.net - 使用 ILMerge 后无法读取自定义配置部分

c# - LINQ GroupBy 并选择不同的属性

c# - 在没有对话框的情况下以编程方式保存 MHT

command-line - 用于更改AssemblyName的项目级别而不是解决方案级别的Msbuild命令行参数

jenkins - 使用 Jenkins 发布 ASP.NET CORE 项目的配置