2012-05-01 2 views
1

В заявке застройщика целевая структура была установлена ​​на 4-й версии, то я изменил его до версии 2.0 и suddently я получил сообщение об ошибке сказав:Какова целевая версия .NET Framework по умолчанию при компиляции приложения из исходного файла?

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

который встречающийся на этой строке кода:

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

тогда я просто изменил строку выше быть:

provider = CodeDomProvider.CreateProvider("CSharp"); 

Теперь все идет нормально. Но возникает вопрос, когда я не добавляю ProviderOptions (элемент Словаря, который содержит компиляцию). Какая сеть будет нацелена? v2 или v4?

Любая помощь была бы высоко оценена!

ответ

2

в версии 2.0 рамочным CreateProvider не перегруженный принять providerOptions, как вы можете видеть в версии документации MSDN

2.0 CreateProvider

2.0, тогда как с версии 4.0 года метод перегружен

4.0 CreateProvider

Я думаю, что в этом случае каркас 2,0 будет использоваться один.

1

Учитывая, что вы работаете в версии 2.0 фреймворка, я не могу себе представить, что вы можете настроить таргетинг на любую другую версию среды выполнения. Немного сложно найти подтверждение этого, но вы можете ориентировать старые фреймворки из более новых версий фреймворка, но вы не можете сделать это наоборот. Я уверен, что это разрушит континуум пространственного времени.

Во всяком случае, вот ссылка на веб-узле документации CodeDomProvider в 2,0 http://msdn.microsoft.com/en-us/library/6yzxs14d.aspx

, а другой к ссылочного метода GetAllCompilerInfo, что вы могли бы использовать, чтобы проверить настройки компилятора.

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

Смежные вопросы