.cs编译成DLL文件

来源:互联网 发布:wifi跑包软件 编辑:程序博客网 时间:2024/05/16 14:59
cs文件如何生成exe,dll文件
以下是本人的制作过程:
1.E盘下有一个Test.cs 文件。
2.开始-》程序-》Microsoft Visual Studio 2005-》Visual Studio Tools-》Visual Studio 2005 命令提示
3.命令提示符山输入:csc /target:library /out:E:/MyTestDLL.dll E:/Test.cs
即可在E盘生成一个名为MyTestDLL的dll文件,该dll的主题是Test.cs
备注:
我在生成自己的DLL时出现这种错误:
e:/DotNetBarCode.cs(8,29): error CS0234:
        命名空间“Microsoft.VisualBasic”中不存在类型或命名空间名称“CompilerServices”(是缺少程序集引用吗?)

因为我这个类中第八行有着样的引用“using Microsoft.VisualBasic.CompilerServices;”;然而vs2005c#程序不能引用到VB中的类库。所以报错。
我的解决办法是:
找到我自己电脑上该VB类库的路径,引入编译。
/reference:C:/WINDOWS/Microsoft.NET/Framework/v2
.0.50727/Microsoft.VisualBasic.dll

完整的语句这样:
csc /target:library /out:E:/MyTestDLL.dll E:/Test.cs /reference:C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Microsoft.VisualBasic.dll

祝大家解决问题!以下是摘录:
1、打开 Microsoft .NET Framework SDK v2.0--> SDK Command Prompt
2、指定cs文件所在的目录(如 E:)
3、运行命令 csc /? 查看所有的命令以及各自的参数
4、csc /target:exe *.cs (生成exe文件)----/t:exe *.cs (Short form)
5、csc /target:library *.cs (生成dll文件)-- /t:library *.cs (Short form)

在网上搜索到的,一般不详细,这个比较详细,果然实验成功。
现在的问题,这个DLL如何调用?
似乎.net的很好调用,ASP能调用吗?
其他语言能调用吗?



通过在命令行上键入 C# 编译器可执行文件的名称 (csc.exe),可以在命令行调用 C# 编译器。如果希望从计算机上的任何子目录调用 csc.exe,可能需要调整路径。

命令行语法规则
当解释操作系统命令行上给出的参数时,C# 编译器代码使用下面的规则:

参数用空白分隔,空白可以是一个空格或制表符。
^ 字符 (^) 未被识别为转义符或者分隔符。该字符在被传递给程序中的 argv 数组前,完全由操作系统的命令行分析器进行处理。
无论其中有无空白,包含在双引号 ("string") 中的字符串均被解释为单个参数。带引号的字符串可以嵌入在参数内。
前面有反斜杠的双引号 (/") 被解释为原义双引号字符 (")。
反斜杠按其原义解释,除非它们紧位于双引号之前。
如果偶数个反斜杠后跟双引号,则每对反斜杠中的一个反斜杠放置在 argv 数组中,并且双引号被解释为字符串分隔符。
如果奇数个反斜杠后跟双引号,则每对反斜杠中的一个反斜杠放置在 argv 数组中,双引号由其余的反斜杠“转义”,使原义双引号 (") 被放置在 argv 数组中。
命令行示例
编译 File.cs 以产生 File.exe:
csc File.cs
编译 File.cs 以产生 File.dll:
csc /target:library File.cs
编译 File.cs 并创建 My.exe:
csc /out:My.exe File.cs
通过使用优化和定义 DEBUG 符号,编译当前目录中所有的 C# 文件。输出为 File2.exe:
csc /define:DEBUG /optimize /out:File2.exe *.cs
编译当前目录中所有的 C# 文件,以产生 File2.dll 的调试版本。不显示任何徽标和警告:
csc /target:library /out:File2.dll /warn:0 /nologo /debug *.cs
将当前目录中所有的 C# 文件编译为 Something.xyz(一个 DLL):
csc /target:library /out:Something.xyz *.cs  





知道的网友请告诉一下。