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