可能重复:
C# - 如何获取 csc.exe 路径?
是否有一种“正确”的方法可以在给定系统上找到 C# 编译器的路径?
例如对于 Java,“正确”的方式是使用HKLM\Software\JavaSoft
注册表项来遍历所有不同的 JDK 及其位置,而不是假设所有内容都在%ProgramFiles%\Java
.
C#有类似的方法吗?
可能重复:
C# - 如何获取 csc.exe 路径?
是否有一种“正确”的方法可以在给定系统上找到 C# 编译器的路径?
例如对于 Java,“正确”的方式是使用HKLM\Software\JavaSoft
注册表项来遍历所有不同的 JDK 及其位置,而不是假设所有内容都在%ProgramFiles%\Java
.
C#有类似的方法吗?
您可以在以下位置找到已安装框架的列表: HKLM\Software\Microsoft.NetFramework
在文件系统%Windows%\Microsoft.NET\Framework
请记住,您可以通过 .net 类本身访问编译器服务。
我更喜欢不那么依赖系统的东西:
string cscPath = System.IO.Path.Combine(System.IO.Path.GetDirectoryName(typeof(object).Assembly.Location),"csc.exe");