是否可以使用 CSharpCodeProvider 从 .net3.5 应用程序定位 .net4 编译器?

发布于 2024-12-23 00:20:53 字数 564 浏览 1 评论 0原文

我正在尝试使用 .net 3.5 应用程序中的 CSharpCodeProvider 编译 .cs 文件,并且我想以 .net4 编译器为目标,但收到此错误“找不到编译器可执行文件 csc.exe”。我安装了.net4。下面是我正在使用的代码,为简洁起见省略了一些行。当我将 CompilerVersion 设置为“v3.5”时,我没有收到任何错误。

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));
}

I'm trying to compile a .cs file using a CSharpCodeProvider from a .net 3.5 app and I want to target the .net4 compiler but I'm getting this error "Compiler executable file csc.exe cannot be found". I have .net4 installed. Below is the code that I'm using with some lines omitted for brevity. When I set CompilerVersion to "v3.5" I get no errors.

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));
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ぶ宁プ宁ぶ 2024-12-30 00:20:53

我认为您可以强制使用.NET 4.0 中的 csc v3.5。

但反之则不然。

(我可能是错的)。

I think you can force using csc v3.5 from .NET 4.0.

But not vice versa.

(I can be wrong).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文