【问题标题】:"Proper" way to find path to C# compiler? [duplicate]找到 C# 编译器路径的“正确”方法? [复制]
【发布时间】:2011-09-01 03:19:37
【问题描述】:

可能重复:
C# - How to get csc.exe path?

是否有一种“正确”的方法可以在给定系统上找到 C# 编译器的路径?

例如对于 Java,“正确”的方法是使用 HKLM\Software\JavaSoft 注册表项来遍历所有不同的 JDK 及其位置,而不是假设所有内容都在 %ProgramFiles%\Java 中。

C#有类似的方法吗?

【问题讨论】:

  • @Bala:啊,我的错;它确实是重复的。感谢您找到它。

标签: c# windows compiler-construction registry csc


【解决方案1】:

您可以在以下位置找到已安装框架的列表: HKLM\Software\Microsoft.NetFramework

在文件系统上%Windows%\Microsoft.NET\Framework

请记住,您可以通过 .net 类本身访问编译器服务。

【讨论】:

  • +1 是的,我想没有更直接的方法了,谢谢...
  • 知识库文章仅在我使用 C# 执行此操作的情况下才有效。这实际上不起作用,因为我是从 JScript 执行此操作的。
【解决方案2】:

我更喜欢不那么依赖系统的东西:

string cscPath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(typeof(object).Assembly.Location),"csc.exe");

【讨论】:

  • 这仅在我从 C# 执行此操作的情况下才有效。这实际上不起作用,因为我是从 JScript 执行此操作的。 :P
  • 哦。那么为什么是 C# 标签呢?这很混乱。
  • 真的吗?抱歉,下次我将使用 JScript 标记有关 C# 编译器的问题。
  • 这会获取正在运行的程序集的路径,它不一定是csc.exe 所在的路径。编译器是嵌入在 Windows 目录中的 .NET Framework 的一部分。如果您安装了 Roslyn,它也可能在 Program Files (x86) 中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-23
  • 1970-01-01
  • 1970-01-01
  • 2021-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多