【发布时间】:2017-11-03 14:58:58
【问题描述】:
我正在从 .NET 4.0 升级到 4.7.1
我关心的两件事。
App.Config-
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.1"/></startup></configuration>这是否意味着它真的没有升级到更新的框架并且运行在 4.0.0 而不是 4.7.1?-
在 svcutil 自动生成的类中?
自动生成 // 此代码由工具生成。 // 运行时版本:4.0.30319.18444
它生成:
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "4.0.0.0")]
我是否必须删除所有自动生成的类并以某种方式使用较新的框架重新生成它,或者我可以手动将它们更改为 4.7.1?
【问题讨论】:
-
4.7.1 是 .NET Framework 4.x 的就地升级(对于任何较低的 x 值)。这确实意味着在许多地方,它仍然声称是 4.0 版。
-
别慌,没有错。版本编号比看上去要多得多,这里有 3 个不同的编号。任何以 .NET 框架 4.x.y 为目标的程序都使用运行时版本 v4.0(CLR 和抖动)。 x.y 代表程序集和修订。 [Serialization] 属性类型自 4.0.0.0 版以来没有改变,基本 BCL 类型都没有。强制您的用户更新到 4.7.1 目前可能不是最好的决定,Windows Update 尚未部署它。 4.6.2就好了。
-
@HansPassant 所以我的第二个问题是 WCF 自动生成的代理(?)代码是可以的,它的 System.Runtime.Serialization 是 4.0.0.0 b/c 它使用了相同的 CLR?
-
除了 4.0.0.0 之外没有其他版本,微软没有任何理由改变它。唯一的“问题”是你没有问题。
标签: c# .net visual-studio .net-4.7