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

本文关键字:目标 NET Framework 是什么 版本 默认 源文件 编译 应用程序 | 更新日期: 2023-09-27 18:32:53

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

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

发生在这行代码上:

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

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

provider = CodeDomProvider.CreateProvider("CSharp");

现在一切顺利。但问题是当我不添加提供程序选项(保存编译器版本的字典项)时,哪个网络框架将成为目标?v2 还是 v4 ?

任何帮助将不胜感激!

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

在 2.0 版本的框架中,CreateProvider 没有重载以接受提供程序选项,如 MSDN 文档的 2.0 版本所示

2.0 创建提供程序

而从 4.0 版本开始,该方法已重载

4.0 创建提供程序

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

鉴于您是在框架的 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