将引用程序集写入中间输出

默认情况下,.NET SDK 现在将引用程序集写入 IntermediateOutputPath 而不是 OutDir。 此更改从在运行时需要的输出中删除这些仅生成时项目。

引入的版本

.NET SDK 6.0.200

旧行为

由于添加了引用程序集,.NET SDK 已将引用程序集写入编译的 OutDir 目录中的 ref 目录。 在 .NET 5 中,已引入 ProduceReferenceAssembly 属性,并对 net5.0 以及更高版本的应用程序默认为 true。 通过此更改,许多应用程序开始隐式地在 OutDir 目录中生成引用程序集。

新行为

现在,引用程序集默认写入 IntermediateOutputPath 目录的 refint 目录,就像许多其他中间项目一样。

更改原因

引用程序集通常不是运行时资产,因此默认不属于 OutDir 目录。

如果你有自定义生成逻辑,并且需要操作引用程序集,请使用 TargetRefPath 属性获取正确的路径。

如果外部系统需要 OutDir 中的引用程序集,请在你的项目文件中将 MSBuild 属性 ProduceReferenceAssemblyInOutDir 设置为 true