“正确”的方式来findC#编译器的path?

可能重复:
C# – 如何获得csc.exepath?

有没有一种“适当”的方式来find给定的系统上的C#编译器的path?

例如,对于Java,“正确的”方法是使用HKLM\Software\JavaSoftregistry项来浏览所有不同的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");