怎么将asp.net源程序编译成一个dll文件?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
很多时候,我们需要将cs文件单独编译成. dll文件,这就需要使用csc命令将cs文件编译成. dll动态链接库文件。具体的操作步骤如下:
打开命令窗口→输入cmd到控制台→cd C: WINDOWSMicrosoft.NETFrameworkv1.1.4322
转到vs.net安装的该目录下→执行csc命令csc/目标:图书馆File.cs→在该目录下产生一个对应名字的. dll文件(前提:把cs文件放到C: WINDOWSMicrosoft.NETFrameworkv1.1.4322目录下)
csc命令的方式很多,请参考以下
编译文件。cs以产生文件。exe
csc文件。cs编译文件。cs以产生文件。dll
csc/目标:库文件。cs编译文件。cs并创建我的。exe
csc/:我。exe文件。cs通过使用优化和定义调试符号,编译当前目录中所有的c#文件。输出为File2。exe
csc/定义:调试/优化/:File2。exe *。cs编译当前目录中所有的c#文件,以产生File2。dll的调试版本。不显示任何徽标和警告
csc/目标:图书馆/:File2。dll/警告:0/不带标识/调试*。cs将当前目录中所有的c#文件编译为。xyz(一个DLL)
csc/目标:图书馆/:一些东西。xyz *。cs编译文件。cs以产生文件。dll
csc/目标:库文件。cs这个就是我们使用最多的一个命令,其实可以简单的写成csc/t:库文件。cs,另外的一个写法是csc/: mycodebehind。mycodebehind dll/t:图书馆。cs,这个可以自己指定输出的文件名。
csc/: mycodebehind。mycodebehind dll/t:图书馆。cs mycodebehind2.cs,这个的作用是把两个cs文件装到一个。dll文件里
<强>一、动态链接库概述:强>
什么是动态链接库? dll三个字母是动态链接库的缩写形式,动态链接库(dll)是作为共享函数库的可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个dll中,该dll包含一个或多个已被编译,链接并与使用它们的进程分开存储的函数. dll还有助于共享数据和资源。多个应用程序可同时访问内存中单个dll副本的内容。
和大多数程序员一样,你一定很使用过dll吧。也曾感受到它的带给你程序设计和编码上的好处吧!今天这里探讨一个主题:如何在c#创建和调用dll(动态链接库),其实在很大意义上而讲,dll让我更灵活的组织编写我们的应用程序,作为软件设计者,可一个根据它来达到很高的代码重用效果。下面我来介绍一下在c#中如何创建和调用dll。
<强>二,准备工作强>
我们需要对我们接下来要做的事情做个简单的介绍,在本文我们将利用c#语言创建一个名为MyDLL。DLL的动态链接库,在这个动态链接库文件中我们将提供两个功能一个是对两个参数交换他们的值,另一个功能是求两个参数的最大公约数,然后创建一个应用程序使用这个DLL。运行并输出结果。
<强>三、创建DLL 强>
让我们创建以下三个c#代码文件:
1, MySwap。cs
using 系统;, namespace MyMethods {, public 才能;class  SwapClass ,{大敌; ,,public static  bool 交换(ref long 我ref long j), ,,,{ ,,,小姐:=,我+ j,, ,,,j =, i j。, ,,,小姐:=,i j。, ,,,return ,真的,, ,,}, ,,}, }
2, MyMaxCD。cs
using 系统;, namespace MyMethods {, public 才能;class  MaxCDClass ,{大敌; ,,public static  long MaxCD (long 我,long j), ,,,{ ,,,long a, b,临时,, ,,,如果(i> j), ,,,{, ,,,,a =,我,, ,,,,b =, j。, ,,,}, ,,,else ,,,{, ,,,,b =,我,, ,,,,a =, j。, ,,,}, ,,,temp =, a %, b,, ,,,,(临时!=0), ,,,{, ,,,,a =, b,, ,,,,b =,临时,, ,,,,temp =, a %, b,, ,,,}, ,,,return b,, ,,}, ,,}, }
需要注意的是:我们在制作这两个文件的时候可以用Visual Studio.NET或者其他的文本编辑器,就算是记事本也可以。这两个文件虽然不在同一个文件里面,但是他们是属于同一个名称空间(名称空间)这对以后我们使用这两个方法提供了方便。当然他们也可以属于不同的名称空间,这是完全可以的,但只是在我们应用他们的时候就需要引用两个不同的名称空间,所以作者建议还是写在一个名称空间下面比较好。