C#程序集系列01,用记事本编写C#,IL代码,用DOS命令编译程序集,运行程序

时间:2022-11-25 11:12:18

本篇主要体验:编写C#,IL代码,用"VS2012开发人员命令提示"编译成程序集,并运行程序。

□ C#文件编译为程序集

→在F盘创建as文件夹
→在as文件夹下创建MyClass.cs
→用记事本打开编写如下代码,并保存

using System;
public class MyClass
{
    public static void PrintSth()
    {
        Console.WriteLine("Hello");
    }
}

→打开"VS2012开发人员命令提示",输入如下命令,并按回车
C#程序集系列01,用记事本编写C#,IL代码,用DOS命令编译程序集,运行程序
→输入如下命令把MyClass.cs编译成MyClass.dll程序集文件,并按回车
C#程序集系列01,用记事本编写C#,IL代码,用DOS命令编译程序集,运行程序

查看F盘下的as文件夹中,多了一个MyClass.dll程序集

□ IL文件编译为程序集

→在as文件夹下创建SecondClass.il
→用记事本打开编写如下代码,并保存

.assembly SecondClassAssembly {}

.assembly extern mscorlib {}

.class public SecondClass extends [mscorlib]system.object{
    .method public static void PrintSth() cil managed{
        ldstr "hello from IL"
        call void [mscorlib]System.Console::WriteLine(string)
        ret
    }
}

→输入如下命令

C#程序集系列01,用记事本编写C#,IL代码,用DOS命令编译程序集,运行程序

→按回车,看到如下界面

C#程序集系列01,用记事本编写C#,IL代码,用DOS命令编译程序集,运行程序

查看F盘下的as文件夹中,多了一个SecondClassAssembly.dll程序集

→查看as文件夹下的dll文件,输入如下命令,并按回车

C#程序集系列01,用记事本编写C#,IL代码,用DOS命令编译程序集,运行程序

□ 使用程序集运行程序

→在as文件夹下创建MainClass.cs
→用记事本打开编写如下代码,并保存

using System;

class MainClass
{
    static void Main()
    {
        MyClass.PrintSth();
    }
}

→打开"VS2012开发人员命令提示",输入如下命令,并按回车

C#程序集系列01,用记事本编写C#,IL代码,用DOS命令编译程序集,运行程序
查看F盘下的as文件夹中,多了一个MainClass.exe程序集

→继续输入如下命令,并按回车
C#程序集系列01,用记事本编写C#,IL代码,用DOS命令编译程序集,运行程序

“C#程序集系列”包括:

C#程序集系列01,用记事本编写C#,IL代码,用DOS命令编译程序集,运行程序

C#程序集系列02,使用记事本查看可执行程序集的IL代码

C#程序集系列03,引用多个module

C#程序集系列04,在程序集包含多个module的场景下理解关键字internal

C#程序集系列05,让程序集包含多个module

C#程序集系列06,程序集清单,EXE和DLL的区别

C#程序集系列07,篡改程序集

C#程序集系列08,设置程序集版本

C#程序集系列09,程序集签名

C#程序集系列10,强名称程序集

C#程序集系列11,全局程序集缓存

C#程序集系列12,C#编译器和CLR如何找寻程序集

C#程序集系列13,如何让CLR选择不同版本的程序集

参考资料:

http://www.computersciencevideos.org/  created by Jamie King