我设计了我自己的语言,最后我将其转换为C#代码。现在我想通过我的Windows窗体应用程序使用C#编译器编译这个C#代码。
实际的编译器文件位于何处,如何编译我的代码(当前放在一个字符串中)??
答案 0 :(得分:5)
听起来你正在寻找CSharpCodeProvider
。 http://support.microsoft.com/kb/304655或MSDN有例子。
答案 1 :(得分:3)
您可以使用C#CodeDom来实现此目的。此链接可以帮助您
http://www.codeproject.com/Articles/3445/Runtime-Compilation-A-NET-eval-statement
答案 2 :(得分:0)
c:\windows\Microsoft.NET\Framework\v3.5\
包含C#编译器csc.exe
。
所以,您可以执行以下操作:
const string outputfile = "abc.exe";
const string inputFile = "xyz.cs"
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = "c:\\windows\\Microsoft.NET\\Framework\v3.5\\csc.exe";
startInfo.Arguments = "/out:" + outputFile + " " + inputFile;
Process.Start(startInfo);
答案 3 :(得分:0)
您需要查看以下两个网站:
1 - 使用csc.exe进行命令行构建
http://msdn.microsoft.com/en-us/library/78f4aasd.aspx
和
2 - 确定安装了哪个版本的.NET Framework
http://msdn.microsoft.com/en-us/library/y549e41e.aspx
您需要从第二个链接中确定您将使用的.NET Framework编译器版本:
“您可以在计算机上安装和运行多个版本的.NET Framework。您可以按任何顺序安装版本。要查看安装的版本,请查看%WINDIR%\ Microsoft.NET \ Framework目录。(您还应该在64位计算机上查看Framework64目录,该计算机可以安装32或64位版本。)每个版本的.NET Framework都有一个目录,目录名的前两位数字标识.NET框架版本;例如:.NET Framework 1.1为v1.1.4322,.NET Framework 2.0为v2.0.50727,.NET Framework 3.5为v3.5,依此类推。“
答案 4 :(得分:0)
只需将nemerle编译器用作csharp语法的服务。
答案 5 :(得分:-1)
您是否考虑过使用Emit?
csc.exe compiler is part of the .Net:
csc.exe可执行文件通常位于 系统目录下的Microsoft.NET \ Framework \文件夹。 它的位置可能会有所不同,具体取决于任何配置 个人电脑。这个可执行文件的多个版本将是 如果有多个版本的.NET Framework,则会出现在计算机上 已安装在计算机上。有关此类的更多信息 安装,请参阅Determining Which Version of the .NET Framework Is Installed。