当我从源文件编译应用程序时,默认的目标.NET Framework版本是什么?

时间:2012-05-01 16:27:15

标签: c# frameworks .net

在构建器应用程序中,目标框架设置为版本4,然后我将其更改为版本2.0,突然我收到错误说:

Error   1   No overload for method 'CreateProvider' takes 2 arguments

在这行代码中出现:

provider = CodeDomProvider.CreateProvider("CSharp", providerOptions);

然后我只是将上面的行改为:

provider = CodeDomProvider.CreateProvider("CSharp");

现在一切顺利。但问题是当我不添加ProviderOptions(包含编译器版本的字典项)时,将针对哪个网络框架? v2还是v4?

任何帮助都将受到高度赞赏!

2 个答案:

答案 0 :(得分:2)

在2.0版本的框架中,CreateProvider没有重载以接受providerOptions,正如您在2.0版本的MSDN文档中所看到的那样

2.0 CreateProvider

然而从4.0版开始,该方法被重载

4.0 CreateProvider

我认为在这种情况下,2.0框架将是使用的框架。

答案 1 :(得分:1)

鉴于您在框架的v2.0中运行,我无法想象您可以针对任何其他版本的运行时。找到这方面的确认有点棘手,但你可以从较新版本的框架中瞄准旧框架,但你不能反过来做。它确实会破坏时空连续体。

无论如何,这里是2.0中CodeDomProvider的microsoft文档的链接 http://msdn.microsoft.com/en-us/library/6yzxs14d.aspx

以及引用的GetAllCompilerInfo方法的另一个方法,您可以利用它来检查编译器设置。

http://msdn.microsoft.com/en-us/library/system.codedom.compiler.codedomprovider.getallcompilerinfo.aspx