针对不同 .NET 版本的程序集之间是不是存在显着差异?

Posted

技术标签:

【中文标题】针对不同 .NET 版本的程序集之间是不是存在显着差异?【英文标题】:Are there any significant differences between assemblies targeting different .NET versions?针对不同 .NET 版本的程序集之间是否存在显着差异? 【发布时间】:2015-11-01 07:55:42 【问题描述】:

当我创建 NuGet 包时,我总是问自己应该提供多少个目标?通常我会创建从 4.0 到 4.6 的所有可能版本,所有版本介于两者之间。

但这真的有必要吗?我注意到所有程序集都具有相同的大小,并且为了验证它们的目标版本是否正确,我使用了 JustDecompile。

我不是 IL 专家,所以当我使用 ILDasm 打开程序集时,我不知道该看什么。我是否仍然应该编译几个不同的版本,还是只有在我使用特定于更高 .NET 版本的东西(如 string.IsNullOrWhitespace 等)时才有意义?

【问题讨论】:

不,以您需要的最低版本为目标。如果在更高版本上可以正常工作。大多数 Nuget 包的目标是 4.0。有些需要 4.5,因为它们依赖于 async 或 http。有一些方法可以让你的生活变得非常复杂,通过依赖这种依赖并仍然支持 XP。别。唯一的其他考虑是您是否希望将其设为 PCL 类库,以便它可以在其他平台上运行。嗯,稍后。 如果您将其作为答案发布,我可以接受...还有一个已解决的问题:-] 【参考方案1】:

不,以您需要的最低版本为目标。如果在更高的情况下可以正常工作 版本。大多数 Nuget 包的目标是 4.0。有些需要4.5,因为 他们依赖于 async 或 http。有一些方法可以让你的 通过采取这种依赖关系并仍然支持XP,生活变得非常复杂。 别。只有其他考虑因素是您是否要使其成为 PCL 类库,因此它可以在其他平台上运行。嗯,稍后。

– 汉斯·帕桑特

【讨论】:

以上是关于针对不同 .NET 版本的程序集之间是不是存在显着差异?的主要内容,如果未能解决你的问题,请参考以下文章

如何计算 R 中两个数据集的显着差异?

发现同一依赖程序集的不同版本之间存在无法解决的冲突

outportb 和 8086 汇编中的 out 指令之间是不是存在显着差异?

测试组均值在 R 中是不是在统计上显着不同

data['column_name'] 与 data.column_name [重复] 之间是不是存在显着差异

数组与数组列表的显着差异? [复制]