最近我注意到VisualStudio开始将我引用的程序集 all 全部复制到构建目录中。
系统名称空间在我的输出目录中占用了约100个文件,这非常烦人(例如11x System.IO.XXX,10x System.Diagnostics.XXX,11x System.Net.XXX等...)。不过,似乎没有其他GAC命名空间受到影响。
我没有为调试配置或发布配置设置任何构建后操作。哎呀,我什至没有在我的项目中引用所有它们(只有7个与系统相关的引用),并且所有这些都设置为不复制到我的输出目录中,除了System.Threading.Tasks.Dataflow,因为它来自NuGet,但是改变那个没有任何区别。
该项目还没有引用该解决方案中的其他任何项目,这些项目可以解释这种行为,但使用了(10)个NuGet软件包。
我可以从哪里开始查找为什么VS认为有必要用所有这些垃圾来污染我的构建目录?因为当我删除所有不必要的文件时,程序运行正常。
修改:
该项目是一个普通的.NET 4.7项目。按照评论的建议将其升级到4.7.1有助于将混乱的文件从100个减少到大约13个。是否有办法摆脱这13个文件?
答案 0 :(得分:0)
检查此 https://docs.microsoft.com/en-us/dotnet/core/project-sdk/msbuild-props TrimmerRootAssembly部分或更常见 UseAppHost并将其设置为False。对我来说,它从输出中删除了所有System。* dlls
答案 1 :(得分:-1)
在“引用属性”上,如果您不想复制到本地目录,我们需要将“复制本地”属性设置为false