2013-03-12 74 views
0

我没有访问IIS服务器的权限,但我被告知该网站已配置为使用.NET Framework 1.1版运行。当我使用Telerik JustDecompile时,我看到以下内容。针对特定版本的.NET Framework编译您的网站

enter image description here

“网1”似乎表明,2个DLL是对FW 1.1版编译。网站dll“GLSS”旁边的“ANY”是否表明该网站可以针对安装在Web服务器上的任何.NET FW版本运行?

为了准备升级到2.0,我要求网站管理员将站点配置更改为FW的2.0版本,我很惊讶该网站(我认为运行1.1代码)仍然有效。我应该感到惊讶吗?

这只是一个向后兼容性的简单例子,并且该网站可以配置为使用任何版本的框架,前提是它等于或高于代码编译使用的版本?

当我在解决方案中查看项目的属性页面时,我感到很惊讶的是,对于仅用于网站项目,我无法找到您要编译的FW的版本。我能够找到它的参考项目。

您能否帮助我更好地理解站点配置的FW版本与组件编译版本之间的关系?

回答

1

您不应该感到惊讶,.NET总是向后兼容的,因为编译运行时版本的程序集应该运行在更新版本的运行时。

当然事物并不是向后兼容的,从微妙的语义差异开始,到对象契约级别(预期的方法/类不再存在的地方)的变化结束,当然存在一些细微的问题,但通常这些问题取决于关于你的应用程序的复杂性。假设简单的应用程序应该没有问题,这是安全的。

程序集编译的运行时的编号是程序集元数据的一部分,它可以用反射读取。因此,在运行时,至少有两种可能的运行时版本 - 程序集编译的版本和执行代码的运行时的当前版本。

+0

感谢您的信息,但我仍然想知道为什么我没有看到选择主网站dll编译的FW版本的选项,以及为什么使用反射的Telerik应用程序显示“任何“作为版本... – ChadD 2013-03-13 02:02:44

+0

您可以更改编译您的网站的运行时版本。这就是所谓的“多目标”,据我所知,可以从VS2008或2010开始。但是,您可以选择一定数量的框架,例如,这不可能将.NET 1.0或1.1与多目标定位(只有选定数量的较新版本可用)。 – 2013-03-13 08:18:59

相关问题