即使我没有使用它的任何功能,我是否应该提供使用最新框架版本构建的程序集?

时间:2013-12-16 20:47:20

标签: .net .net-assembly

这让我烦恼了一段时间,现在它与.NET 4.5.1的发布变得更加相关。我检查了最新的NuGet包,似乎没有人(甚至是微软)打算包含新的.NET 4.5.1程序集。我假设这些软件包不使用此版本中提供的任何新功能。

我在NuGet上有一些非常简单的库,我甚至可以用.NET 4.0编译它们。我包含了.NET 4.5程序集,但它们不包含.NET 4.5特有的任何功能。它与使用TargetFrameworkVersion参数构建的项目相同。

.NET 4.5和4.5.1都是in-place updates。因此,对于使用我的库的人来说,我为每个框架版本提供了一个程序集,这无关紧要。如果他们安装了.NET 4.5,如果他们使用.NET 4.0或.NET 4.5程序集,它会有什么不同(性能可能)吗?

总之,我想知道何时应该提供在更高版本中构建的程序集。

2 个答案:

答案 0 :(得分:1)

我会使用编译代码的最低版本的.NET。通过这种方式,您的图书馆可供最广泛的消费者使用。

答案 1 :(得分:1)

如果您没有使用任何新API,我认为您不需要提供针对最新版本的就地.NET更新的更新。

显然,您的图书馆仍然是一个受益于就地更新引入的任何性能改进的候选者。 假设您的库在4.5.1中使用的API有性能改进。即使你的程序集目标是4.0,它也会受益于更新,因为最终用户的机器上安装了4.5.1。

受Target Framework版本影响的一个功能是Auto NGEN。只有以.NET 4.5或更高版本为目标的程序集才能生成自动本机映像。 (NGEN可能会改善应用程序启动时间)如果您关心这一点,那就是我能想到的一个原因,除了4.0程序集之外,为什么要提供目标为4.5或4.5.1的程序集。

相关问题