`
zzc125
  • 浏览: 13415 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

自己制作C#文件编译器

阅读更多

对于初学者而言, 新建控制台程序,就开一个visual studio可能太过于奢侈了,况且,不利于初学者对基本知识的掌握,所以,可以利用下面的一个小程序结合一个文本编辑器,就可以编译C#的控制台文件了。

第一个界面:

SpxImage

第二个界面:

SpxImage

做一个简单的说明:

第一个界面是起始界面,第一个三个按钮是picturebox控件组成的,作用分别是:运行,浏览C#文件,和退出。

当点击运行时,就会编译C#文件,浏览是弹出第二个界面,用于查找C#文件。

程序原理:

在这个程序中,我是利用一个批处理文件来完成编译C#文件的,在这里,需要了解一个批处理和C#的CSC命令(在此不做讲解,去Google或者百度吧)。

“运行”按钮的代码:

if (File.Exists("run.bat"))
{
StreamReader sr = new StreamReader("run.bat");
string str = sr.ReadToEnd();
sr.Close();
if (str == "" || str == string.Empty || str == null)
{
MessageBox.Show("请选择需要编译的C#文件!", "C#文件编辑器", MessageBoxButtons.OK, MessageBoxIcon.Stop);
}
else
{
Process.Start("run.bat");
}
}
else
{
MessageBox.Show("缺少编译文件!", "C#文件编辑器", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

“浏览”按钮的代码:

//浏览文件
private void pictureBox3_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
f2.ShowDialog();
}

“退出”的按钮:

//退出
private void pictureBox4_Click(object sender, EventArgs e)
{
DeleteFile();
Application.Exit();

}

//DeleteFile()方法:

//用于删除生成的文件

private static void DeleteFile()
{
if (File.Exists("run.bat"))
{
File.Delete("run.bat");
}
}

好了,第一个界面的代码基本完成。

现在来看第二个界面的代码:

“浏览”按钮的事件:

if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{
string spath = this.openFileDialog1.FileName;//spath包含了路径和文件名以及文件拓展名
this.textBox1.Text = spath;
}

“确定”按钮的事件:

if (this.textBox1.Text == "" || this.textBox1.Text == string.Empty || this.textBox1.Text == null)
{
MessageBox.Show("请选择需要编译的C#文件!", "C#文件编辑器", MessageBoxButtons.OK, MessageBoxIcon.Stop);

}
else
{

/* cmd命令语法格式:
* cd /d C:\Windows\Microsoft.NET\Framework\v2.0.50727
* cd /d 文件所在的路径
* csc 文件名
* 文件名
*/


/**
* set Path=C:\Windows\Microsoft.NET\Framework\v2.0.50727
* csc 文件所在的路径\文件名
* 文件名
*
* ***/
StringBuilder sb = new StringBuilder();
sb.Append("@echo off\r\nset Path=C:\\Windows\\Microsoft.NET\\Framework\\v2.0.50727\r\necho on");//设置临时环境变量
string PathWithNameAndExtendname = this.openFileDialog1.FileName;//PathWithNameAndExtendname 文件所在的路径、文件名(包含了文件的拓展名)
DirectoryInfo di = Directory.GetParent(PathWithNameAndExtendname);
FileInfo fi = new FileInfo(PathWithNameAndExtendname);
sb.Append("\r\ncsc /out:" + Path.GetDirectoryName(PathWithNameAndExtendname) + "\\" + Path.GetFileNameWithoutExtension(PathWithNameAndExtendname) + ".exe");//编译命令的前半部分的out命令
sb.Append(" /target:exe " + fi.FullName);//编译命令的后半部分 输出目标
sb.Append("\r\n@echo off\r\n cd /d " + Path.GetDirectoryName(PathWithNameAndExtendname));
sb.Append("\r\necho on\r\n" + Path.GetFileNameWithoutExtension(PathWithNameAndExtendname) + ".exe" + "\r\nPause");//运行(包含了文件的拓展名)
FileStream fs = new FileStream("run.bat", FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
fs.Close();
StreamWriter sw = new StreamWriter("run.bat");
sw.Write(sb);
sw.Flush();
sw.Close();
this.Close();
好了 以上就是一个简易的C#文件编译器了的80%的代码了。源码已经在我的空间里发布了。需要的可以下载。

分享到:
评论

相关推荐

    C#编译器(VS2005_C#制作)

    【C# 编译器与 Visual Studio 2005】 C# 编译器是微软.NET框架的重要组成部分,它负责将C#源代码转换为机器可理解的中间语言(IL)或本地代码(Native Code)。Visual Studio 2005(VS2005)是一个集成开发环境(IDE...

    智能的c#脚本编辑器源码

    ScriptTool允许用户直接编译C#脚本为可执行程序或库文件,这通常涉及到C#编译器API的使用,如Microsoft.CSharp命名空间下的CSharpCodeProvider。通过调用编译器服务,我们可以将源代码转换成中间语言(IL),再...

    C#实现的编译器,编译原理的课程设计

    综上所述,这个C#实现的编译器项目是一个完整的编译流程实现,涵盖了从源代码到可执行文件的关键步骤。通过参与这样的课程设计,学生不仅能深入理解编译原理,还能掌握实际编程技巧,对于未来从事软件开发,尤其是...

    C#制作dll文件.pdf

    本文主要讨论如何使用C#制作DLL(动态链接库)文件,这是一种能够提高代码重用性和应用程序可维护性的技术。DLL文件通常包含一组可由多个程序共享的函数或类。 在C#中,创建DLL文件的过程与传统编程语言如Visual ...

    非常好用的C#富文本编译器

    C#富文本编译器是一种用于创建和编辑带有格式化的文本的应用程序,它通常用于文本编辑、文档制作、代码编辑等多个场景。在编程领域,尤其是软件开发中,一个高效的富文本编译器能够极大地提升开发者的生产力。"非常...

    C#打包成exe文件工具

    C#源代码(.cs文件)通过Microsoft的C#编译器(csc.exe)转换成中间语言(IL),然后通过.NET框架的Just-In-Time(JIT)编译器将IL编译为机器码,这使得程序可以在目标平台上运行。然而,为了便于分发和使用,我们...

    WIX制作C#应用程序安装包

    WiX工具集包括多个命令行工具,如 candle(编译器)和 light(链接器),它们将XML源代码转换为MSI(Microsoft Installer)文件。MSI文件是Windows操作系统用来安装、升级和卸载软件的标准格式。 2. **创建WiX项目...

    教案C#制作dll文件.pdf

    使用C#编译器(Csc.exe),可以通过指定不同的目标类型来生成不同类型的输出文件。对于DLL,我们需要使用`/target:library`开关。教程中提到的编译命令如下: ``` csc /r:system.dll /t:library /out:mydll.dll ...

    C#工具制作

    10. **性能优化**:C#支持编译为IL(Intermediate Language)代码,通过JIT(Just-In-Time)编译器可以实现高效的运行时性能。此外,还可以使用性能分析工具来识别并优化代码中的瓶颈。 总之,C#工具制作是一个涉及...

    C#自己开发AGV地图编辑软件

    C#自己开发AGV地图编辑软件: 1、自由添加和删除站点、停车位、小车、运行路径。 2、编辑得地图以XML文件保存。 3、导入编辑好地图的XML文件。 4、程序都是源码,可以直接在此基础上进行二次开发。

    C#程序制作之家庭相册

    在本项目中,我们将探讨如何使用C#编程语言制作一个简单的家庭相册应用程序。这个程序旨在提供一个方便的方式来浏览和管理个人的家庭照片。通过参与这个项目,你可以深入了解C#的基础知识,包括图形用户界面(GUI)...

    c#帮助文档的详细制作

    本篇将详细介绍如何制作C#帮助文档,以提高代码的可读性和可维护性。 一、帮助文档的重要性 1. 提高代码可读性:清晰的文档能让其他开发者快速理解代码的逻辑和功能。 2. 促进团队协作:当团队成员共享代码时,文档...

    C# FastReport 制作报表 FastReport 相关 dll文件 .net4.5版本

    - 它包含了C#编译器,提供对C#语言特性的支持,如async/await,这使得异步编程更加简洁。 - .NET Framework 4.5改进了垃圾回收机制,提高了性能,并且增强了WCF、ASP.NET等技术。 4. **WinForms集成** - ...

    C#单词表制作小工具

    开发者可能使用了Visual Studio或其他C#集成开发环境来编写和编译这些源代码,而jar包则可能通过Java的编译器和打包工具(如javac和jar命令)生成。 总的来说,这个C#单词表制作小工具利用网络爬虫技术从网上抓取...

    【C#】第十八讲 C#编译的exe程序如何生成安装包.zip

    当我们使用Visual Studio或其他C#编译器(如Mono或Roslyn)完成代码编写并编译项目后,会得到一个或多个.exe可执行文件。这些文件可以直接运行,但不包含任何依赖项或配置信息,用户可能无法在没有相同环境的情况下...

    非常好用的C#程序打包工具

    Inno Setup是一个常见的安装脚本编译器,常用于创建Windows安装程序,它支持自定义安装脚本,可以制作出专业级别的安装包。"skygz"可能是这个打包工具的特定版本或者发行者的名字。另外,"快乐无极软件园 OYKSOFT....

    C#制作的送给女朋友的一个软件

    如果这是主程序文件,那么它很可能是一个.exe可执行文件,由C#编译器将源代码编译而成,用于在Windows操作系统上运行。 综合以上信息,我们可以学习到以下几个知识点: 1. C#编程语言:了解其基本语法、面向对象...

    用Visual C#制作DLL

    本文将深入探讨使用Visual C#创建DLL的具体步骤,并着重介绍如何正确配置编译器参数以生成DLL文件,以及如何在客户端程序中使用这些DLL。 #### 二、理解C#中的DLL概念 在传统的Windows编程中,DLL(Dynamic Link ...

Global site tag (gtag.js) - Google Analytics