Подтвердить что ты не робот

Как настроить таргетинг на .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\"); } } }");
        }
    }
}
4b9b3361

Ответ 1

Это по дизайну, что вы можете увидеть, когда вы переходите к c:\windows\microsoft.net\framework с помощью Проводника Windows. Обратите внимание, что вы увидите только подкаталог с именем v4.0.30319, нет подкаталога v4.5. Или, другими словами,.NET 4.5 является истинным обновлением на месте для версии 4.0, а компилятор С# v5 заменяет компилятор v4.

Вам нужно указать "v4.0".