Msbuild .Net Framework 4.7控制台应用程序引用.Net核心dll-输出目录中的意外文件

Msbuild .Net Framework 4.7控制台应用程序引用.Net核心dll-输出目录中的意外文件,msbuild,.net-core,.net-standard,Msbuild,.net Core,.net Standard,我有一个.NET Framework控制台应用程序(.NET Framework 4.7),它引用了.NET核心dll(.NET标准2.0)。.Net核心dll在NETStandard.Library之外不使用任何内容 我注意到/bin/Debug目录中有一些意外的文件。经过一些调查,我确定这些文件不是来自任何引用的包,而是从中复制的 C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Microsof

我有一个.NET Framework控制台应用程序(.NET Framework 4.7),它引用了.NET核心dll(.NET标准2.0)。.Net核心dll在NETStandard.Library之外不使用任何内容

我注意到/bin/Debug目录中有一些意外的文件。经过一些调查,我确定这些文件不是来自任何引用的包,而是从中复制的

C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\MSBuild\Microsoft\Microsoft.NET.Build.Extensions\\net461\ref
此目录的内容在我们使用的机器上有所不同,导致输出目录中出现不同的DLL。这使得调试过程不一致


现在我已经找出了问题的原因,我想知道这是什么原因,是否有办法防止它发生,ie仅将项目中引用的包复制到/bin/Debug

这些文件是允许.NET标准库在.NET Framework上工作所必需的。它们包含必要的类型转发定义,以便在运行时正确加载每个程序集-例如,库可以从
netstandard.dll
(.NET标准>=2.0)或
System.runtime.dll
(.NET标准<2.0)引用
System.Object
)。输出文件中的其他程序集将把类型重定向到.NET Framework的
mscorlib.dll

有人在回答一个类似的问题

请注意,即将发布的.NET Framework 4.7.1将具有所有必需的类型定义,并将即时转发,因此,一旦项目以4.7.1为目标,将不会向项目的输出文件夹中添加其他程序集。

它们不再是“意外的”,而是预期的。