【问题标题】:Is it possible to target the .net4 compiler from a .net3.5 app with a CSharpCodeProvider?是否可以使用 CSharpCodeProvider 从 .net3.5 应用程序定位 .net4 编译器?
【发布时间】:2011-12-26 00:41:29
【问题描述】:

我正在尝试使用 .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));
}

【问题讨论】:

  • 听起来像一个路径问题.. .net 3.5 程序集和 4.0 尤其是在 GAC 方面,例如不共享相同的 GAC 检查您为初学者安装 .net 4.0 框架的路径。 ..
  • .net4 安装在 C:\Windows\Microsoft.NET\Framework\v4.0.30319\ 和 .net3.5 安装在 C:\Windows\Microsoft.NET\Framework\v2.0.50727 \
  • 在传递给构造函数的字典中使用“CompilerVersion”。 msdn.microsoft.com/en-us/library/bb537926.aspx
  • 汉斯这就是我正在做的事情。您必须在我发布的示例中向右滚动才能看到它。
  • .NET 4.0 知道如何找到 v2.0、v3.5 和 v4.0 编译器。 .NET 3.5 知道如何找到 v2.0 和 v3.5 编译器。但是没听说有v4.0版本。

标签: c# .net csharpcodeprovider


【解决方案1】:

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

但反之亦然。

(我可能是错的)。

【讨论】:

    猜你喜欢
    • 2012-04-12
    • 2022-07-09
    • 2018-10-18
    • 2020-08-03
    • 2013-07-22
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多