【问题标题】: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 类库,以便它可以在其他平台上运行。嗯,稍后。
  • 如果您将其作为答案发布,我可以接受...还有一个已解决的问题:-]

标签: .net msbuild nuget-package ildasm


【解决方案1】:

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

– 汉斯·帕桑特

【讨论】:

    猜你喜欢
    • 2018-12-22
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    • 2023-01-31
    • 1970-01-01
    • 2015-08-08
    • 2012-02-10
    • 1970-01-01
    相关资源
    最近更新 更多