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