在构建器应用程序中,目标框架设置为版本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?
任何帮助都将受到高度赞赏!
答案 0 :(得分:2)
在2.0版本的框架中,CreateProvider没有重载以接受providerOptions,正如您在2.0版本的MSDN文档中所看到的那样
然而从4.0版开始,该方法被重载
我认为在这种情况下,2.0框架将是使用的框架。
答案 1 :(得分:1)
鉴于您在框架的v2.0中运行,我无法想象您可以针对任何其他版本的运行时。找到这方面的确认有点棘手,但你可以从较新版本的框架中瞄准旧框架,但你不能反过来做。它确实会破坏时空连续体。
无论如何,这里是2.0中CodeDomProvider的microsoft文档的链接 http://msdn.microsoft.com/en-us/library/6yzxs14d.aspx
以及引用的GetAllCompilerInfo方法的另一个方法,您可以利用它来检查编译器设置。