C# 编译器版本与.NET Framework版本-使用ASP.NET应用程序的场景
情景: 我的客户机上有VS2010(C#4编译器),目标是3.5 我正在开发ASP.NET应用程序。我在一个类文件中使用可选参数(支持C#4)并编译代码,看起来一切正常 稍后,在运行时发现一个问题,旧的(我相信是经典的)ASPX正在使用该函数。没有函数只接受x参数,其中x比可选参数小一个,即运行时错误C# 编译器版本与.NET Framework版本-使用ASP.NET应用程序的场景,c#,.net,asp.net,clr,compilation,C#,.net,Asp.net,Clr,Compilation,情景: 我的客户机上有VS2010(C#4编译器),目标是3.5 我正在开发ASP.NET应用程序。我在一个类文件中使用可选参数(支持C#4)并编译代码,看起来一切正常 稍后,在运行时发现一个问题,旧的(我相信是经典的)ASPX正在使用该函数。没有函数只接受x参数,其中x比可选参数小一个,即运行时错误 这是否意味着普通类等使用客户端的C#编译器,而视图(aspx)等使用服务器上的编译器?如果在视图/表单文件中使用C#4,则会导致问题?我认为这与以下事实有关:第一次加载时,IIS会(重新?)编译a
这是否意味着普通类等使用客户端的C#编译器,而视图(aspx)等使用服务器上的编译器?如果在视图/表单文件中使用C#4,则会导致问题?我认为这与以下事实有关:第一次加载时,IIS会(重新?)编译aspx页面,而不是在Visual Studio中编译。这允许它们在不重新编译的情况下动态更新,但是由于它们是由IIS编译的,因此会带来您所看到的复杂性 我不知道有什么方法可以让IIS使用C#4编译器,但可以编译到.NET 3.5,因此您的唯一选择似乎是:
该函数是从.aspx文件内部调用的,还是从该文件的codebehind内部调用的?@Adam我很清楚,只要使用C#4.0编译器,您可以在针对.NET 3.5时使用可选参数。我想说的一点是,虽然你可以在Visual Studio中这样做,但我不知道有什么方法可以让IIS在.NET 3.5动态重新编译.aspx页面时使用C#4编译器。