Как настроить таргетинг на .net 4.5 с помощью CSharpCodeProvider?
Возможный дубликат:
Использование CSharpCodeProvider с бета-версией .net 4.5
Для .net 3.5 Я передаю v3.5 в CSharpCodeProvider, когда я передаю v4.5 в CSharpCodeProvider в приложении v4.5, я получаю InvalidOperationException
"Не удалось найти исполняемый файл компилятора csc.exe".
Кто-нибудь знает, что происходит здесь, что я делаю неправильно?
Код для воспроизведения.,.
using Microsoft.CSharp;
using System;
using System.CodeDom.Compiler;
using System.Collections.Generic;
namespace Console1
{
class Program
{
static void Main(string[] args)
{
var options = new Dictionary<string, string>{{"CompilerVersion", "v4.5"}};
var cs = new CSharpCodeProvider(options);
var compilerParams = new CompilerParameters();
var r = cs.CompileAssemblyFromSource(compilerParams , "namespace ns { class program { public static Main(string[] args) { System.Console.WriteLine(\"Hello world\"); } } }");
}
}
}
Ответы
Ответ 1
Это по дизайну, что вы можете увидеть, когда вы переходите к c:\windows\microsoft.net\framework с помощью Проводника Windows. Обратите внимание, что вы увидите только подкаталог с именем v4.0.30319, нет подкаталога v4.5. Или, другими словами,.NET 4.5 является истинным обновлением на месте для версии 4.0, а компилятор С# v5 заменяет компилятор v4.
Вам нужно указать "v4.0".