MSBuild and <AutoUnifyAssemblyReferences />
本文关键字:gt AutoUnifyAssemblyReferences lt and MSBuild | 更新日期: 2023-09-27 18:25:23
"Microsoft.Bcl.Build.targets"包含此块:
<!--
Workaround MSBuild issue that prevents System.Runtime 2.5 and System.Threading.Tasks 2.5 from
satisfying indirect dependencies on System.Runtime 1.5 and System.Threading.Tasks 1.5 respectively.
-->
<AutoUnifyAssemblyReferences>false</AutoUnifyAssemblyReferences>
"AutoUnifyAssemblyReferences"的实际作用是什么?
它直接映射到ResolveAssemblyReferencs
-任务的AutoUnify
参数。
文件摘录:
此参数用于生成程序集,例如DLL不能有正常的App.Config文件。
如果为true,则生成的依赖关系图将自动处理为如果有一个App.Config文件传入到AppConfigFile参数此虚拟App.Config文件具有的bindingRedirect项每个程序集冲突,使得最高版本选择程序集。这样做的后果是关于冲突程序集的警告,因为每个冲突都将具有已解决。
如果为true,则每个不同的重新映射将导致高优先级评论显示了旧版本和新版本,并且AutoUnify是真的。
如果为true,则AppConfigFile参数必须为空
如果为false,则不会重新映射程序集版本自动。当一个程序集存在两个版本时,将发出警告发布。
如果为false,则不同版本的相同的程序集会产生高优先级注释。这些评论是然后是一个警告。该警告具有唯一的错误代码,并且包含文本,内容为"发现不同版本之间的冲突参考组件和从属组件"。
突出显示的句子似乎解释了你提到的Microsoft.Bcl.Build.Targets
中的评论。
(此参数还会影响常见的MSB3247警告。)
因此,对于某些类型的"exe"程序集,AutoUnifyAssemblyReferences
的默认值设置为false
,而对于其他程序集类型,则设置为true
(有关详细信息,请参见%Windir%'Microsoft.NET'Framework64'v4.0*'Microsoft.Common.Targets
)。