【发布时间】:2018-04-10 06:13:38
【问题描述】:
我有一个针对 4.5.2 的库。当我从.csproj 以4.5.1 引用这个库时,它会出错:
C:\程序文件 (x86)\MSBuild\14.0\bin\Microsoft.Common.CurrentVersion.targets(1820,5): 警告 MSB3274:主要参考“XXX,版本=1.0.0.0, 文化=中性,处理器架构=MSIL”无法解决 因为它是针对“.NETFramework,Version=v4.5.2”构建的 框架。这是比当前目标更高的版本 框架“.NETFramework,Version=v4.5.1”。
据我了解,4.5.1 到 4.5.2 已就地升级。通过就地升级,我知道如果我将我的.csproj 升级到4.5.2,并且当我的目标部署机器仍然有4.5.1 时,一切都应该正常工作,除非我升级的二进制文件使用4.5.2 的特定功能,这不是在4.5.1 中可用。到目前为止我是正确的吗?使用类似的逻辑,如果我从项目目标 4.5.1 引用库目标 4.5.2,它不应该工作吗?
【问题讨论】:
-
Microsoft 为确保新的框架版本向后兼容做了很多努力。但是,您要求的是前向兼容性,这种功能需要他们构建时间机器。它们只存在于书籍和电影中。更新用户的框架版本永远不会成为问题,必须支持拒绝启用 Windows 更新的用户是一个您无法在此处获得帮助的问题。这几乎总是一个虚构的问题。