可能重复:
C# – 如何获得csc.exepath?
有没有一种“适当”的方式来find给定的系统上的C#编译器的path?
例如,对于Java,“正确的”方法是使用HKLM\Software\JavaSoft
registry项来浏览所有不同的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");