我有一个定位4.5.2
的图书馆。当我从.csproj
定位4.5.1
引用此库时,它错误地说:
C:\ Program Files (86)\的MSBuild \ 14.0 \ BIN \ Microsoft.Common.CurrentVersion.targets(1820,5): 警告MSB3274:主要参考" XXX,版本= 1.0.0.0, 文化=中立,处理器架构= MSIL"无法解决 因为它是针对" .NETFramework构建的,Version = v4.5.2" 框架。这是比当前目标版本更高的版本 框架" .NETFramework,版本= v4.5.1"。
根据我的理解,4.5.1
到4.5.2
已到位升级。通过就地升级,我了解如果我将.csproj
升级到4.5.2
并且当我的目标部署计算机仍然有4.5.1
时,除非我的升级二进制文件使用特定功能,否则一切都应该正常工作4.5.2
中未提供的4.5.1
。到目前为止我是否正确?如果我从项目定位4.5.2
引用库定位4.5.1
,那么使用类似的逻辑,不应该有效吗?
答案 0 :(得分:1)
仅仅因为它是就地升级并不意味着您可以引用正向版本。最终,您要引用的包是4.5.2,这意味着它可以使用4.5.2中仅存在的功能。因此,从4.5.1项目中定位它是不安全,因为完整的说法是"我的目标是4.5.1"是的,如果有人有 4.5.1,它应该运行。哪个:这不会。
所以:如果你想要定位目前以4.5.2为目标的软件包,你有两个选择: