无需 Visual Studio 创建 DLL






1.85/5 (7投票s)
2007年7月16日
4分钟阅读

55091

641
一篇关于创建您自己的 DLL 以用于您的 .NET 项目的文章
引言
本文主要针对那些在没有 Visual Studio 的情况下创建 ASP.NET 网页的用户——可能只使用记事本,并将他们的代码隐藏内联在同一页面上——但他们想要创建一个 DLL,其中包含一些可以从任何页面引用的全局(公共)函数。它也可能简单地介绍了 DLL 是什么以及如何使用它们。本文讨论的是 VB.NET,但相同的原则适用于其他 .NET 语言。
当然,没有理由不能将这样的 DLL 合并到 Visual Studio 项目中,但是任何使用它的人都有更直接的创建 DLL 的方法。一旦创建,它们就像任何其他 DLL 一样被对待,即,它们应该被放置在应用程序的 /bin 文件夹中,并以通常的方式被引用。 这是一个很好的开始,可以构建和维护一个可以在所有应用程序中使用有用的函数库。 此外,经过预编译后,DLL 中的函数应该比简单地包含在页面内联代码中的函数执行得更快。
使用代码
ZIP 文件包含一个小应用程序 vbc.exe,实际上它可能已经在您的计算机上。 ZIP 文件中的那个位于 windows/Microsoft.NET/Framework/v1.1.4322 中。 这样创建的 DLL 也可以用于更高版本的框架中,但要受到框架之间存在的任何兼容性问题的约束。 也就是说,它们通常会正常工作! 但是,.NET 2.0 版本存在于该框架的相应文件夹中,因此如果您特别想要针对它,请找到它并用它代替 ZIP 文件中的那个。
我发现在一个更容易访问的位置创建一个新文件夹 /inetpub/vbc/,并将文件复制到那里很有帮助。 这是一个命令行可执行文件,因此要运行它,您需要打开一个命令提示符窗口并导航到此文件夹。 为了简化此任务,ZIP 文件还包含一个示例批处理 (BAT) 文件,该文件将直接带您到那里。 您可能需要修改它以满足您的需要; 很容易弄清楚。 所以,步骤是
- 在 inetpub 中创建一个名为“vbc”的新文件夹
- 将文件 vbc.exe 复制到其中
- 打开一个命令提示符窗口,并注意它打开的默认文件夹
- 将文件 vbc.bat 复制到该文件夹中,如有必要,进行修改
在我们真正可以使用所有这些之前,我们需要为我们的 DLL 创建源文件! 我们将创建一个小 DLL,其中包含一个公共函数,该函数将返回一个字符串,用于问候在调用时传入的名称。 打开一个新的空白文本文件,并将其保存到上面的 vbc 文件夹中,扩展名为 .vb,例如 myfirstdll.vb。 然后添加以下内容
Imports System
Imports System.Data
Namespace MyNameSpace1
Public Class MyClass1
Public Function Hello(ByVal strName As String) As String
If strName.Trim = "" Then
Return "Hello! Who the @!*# are you?"
Else
Return "Hello " & strName & "!"
End If
End Function
End Class
End Namespace
事实上,在这个例子中 imports
不是必须的,但是作为如何导入类的例子,在比这更实际的例子中,你需要这样做。 当然,您可以根据需要添加任意数量的函数。 现在打开您的命令提示符窗口,如果您已经复制并配置了批处理文件,则键入 vbc
。 否则,手动导航到 vbc 文件夹。 接下来,键入并输入
vbc.exe /t:library /out:myfirstdll.dll /r:system.dll
/r:system.data.dll myfirstdll.vb
关于这个的说明
vbc.exe /t:library
- 始终使用/out:myfirstdll.dll
- /out: 后面是要创建的 DLL 的名称/r:system.dll /r:system.data.dll
- 以 /r 开头的导入 DLL 列表myfirstdll.vb
- 您的源文件
注意第 3 点:知道要导入哪些类以及这里需要哪些 DLL 是经验问题。 常见的有用的可能是
- System.Data
- System.Data.SqlClient
- System.XML
- System.Text
可以在 vbc 调用中相应地引用它们。 如果您可能想在导入列表中包含 Data.SqlClient 以使您的代码更容易,您应该只在 vbc 调用中引用 /r:system.data.dll。 没有 system.data.sqlclient.dll。 查看 windows/Microsoft.NET/Framework/v1.1.4322 文件夹,原始 vbc.exe 文件所在的位置; 您可以在其中引用任何 DLL。 您现在应该在您的 vbc 文件夹中看到 myfirstdll.dll。 将其复制到您的应用程序的 /bin 文件夹中,即可使用。 现在调用 Hello
函数很简单,只需在您的 ASPX 页面中引用 DLL 即可。 例如
<%@ import Namespace="MyNameSpace1" %>
<script runat="server">
Private Sub Page_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs)
Dim myFunction As New MyNameSpace1.MyClass1
litHello.Text = myFunction.Hello("World")
End Sub
</script>
<html>
<body>
<asp:Literal runat="server" id="litHello" />
</body>
</html>
此页面的输出将是一个简单的 Hello World!
消息。 就是这样! 祝你编码愉快。 -Fred
历史
- 2007 年 7 月 16 日 -- 发布原始版本