Должно быть в %WINDOWS%\Microsoft.NET\Framework\%VERSION_NUMBER%
.
Например, у меня на коробке есть:
c:\Windows\Microsoft.NET\Framework\v1.0.3705
c:\Windows\Microsoft.NET\Framework\v1.1.4322
c:\Windows\Microsoft.NET\Framework\v2.0.50727
c:\Windows\Microsoft.NET\Framework\v3.0
c:\Windows\Microsoft.NET\Framework\v3.5
c:\Windows\Microsoft.NET\Framework\v4.0.30319
Из них только в каталогах 2.0.xxx, 3.5 и 4.0.xxx есть компиляторы C # (csc.exe).
Вместо непосредственного вызова исполняемого файла, вы могли бы использовать CSharpCodeProvider
для компиляции кода? Таким образом, вы можете делать все это программно, без необходимости определять местоположение исполняемого файла.