2011-12-26 34 views
6

Tôi đang cố gắng biên dịch tệp .cs bằng cách sử dụng CSharpCodeProvider từ ứng dụng .net 3.5 và tôi muốn nhắm mục tiêu trình biên dịch .net4 nhưng tôi nhận được lỗi này "Không thể tìm thấy tệp csc.exe thực thi Compiler". Tôi đã cài đặt .net4. Dưới đây là mã tôi đang sử dụng với một số dòng bỏ qua cho ngắn gọn. Khi tôi đặt CompilerVersion thành "v3.5", tôi không nhận được lỗi nào.Có thể nhắm mục tiêu trình biên dịch .net4 từ ứng dụng .net3.5 với CSharpCodeProvider không?

CompilerResults results = null; 
using (CSharpCodeProvider provider = new CSharpCodeProvider(new Dictionary<string, string>() {{"CompilerVersion", "v4.0"},})) 
{ 
    CompilerParameters options = new CompilerParameters(); 
    ... 
    results = provider.CompileAssemblyFromFile(options, Directory.GetFiles(path, "*.cs", SearchOption.AllDirectories)); 
} 
+0

âm thanh như một vấn đề đường dẫn .. .net 3.5 lắp ráp và 4.0 đặc biệt là về GAC ví dụ không chia sẻ cùng một GAC kiểm tra đường dẫn nơi bạn đã cài đặt khuôn khổ .net 4.0 cho người mới bắt đầu ... – MethodMan

+0

.net4 được cài đặt trong C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ và .net3.5 được cài đặt trong C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ – Loman

+0

Sử dụng "CompilerVersion" trong từ điển bạn truyền cho hàm tạo. http://msdn.microsoft.com/en-us/library/bb537926.aspx –

Trả lời

4

Tôi nghĩ bạn có thể sử dụng csc v3.5 từ .NET 4.0.

Nhưng không phải ngược lại.

(Tôi có thể sai).

Các vấn đề liên quan