gpt4 book ai didi

vb.net - 如何将 "class project"中的 dll 嵌入到我在 vb.net 中的项目中

转载 作者:行者123 更新时间:2023-12-04 13:28:29 25 4
gpt4 key购买 nike

我有一个标准的“类库”项目,其中包含一组用于导入几乎所有新项目的类。

我的工作方式是用一个空项目创建一个新的解决方案,这是我的主项目,然后我将提到的类库项目添加到解决方案中,这样我就可以在 Soluction Explorer 中看到这两个项目,甚至可以看到库代码或在需要时更新它。然后我在我的主项目中编写代码并进行编译。

这导致我在编译时有 2 个文件:文件 *.exestdlib.dll
在某些情况下,我将 lib 用于非常小的工具,我想以简单明了的方式重新分发这些工具,所以我想嵌入 stdlib.dll从我的类库项目生成到我的 *.exe文件。

我很确定为什么在我的 Microsoft Visual Basic 2010 Express 中这样做,但我不知道如何。

有什么建议吗?

最佳答案

这是 Alex's procedure 的“逐步”版本嵌入程序集。

  • 将所需的程序集 (stdlib.dll) 添加到项目资源中。
    转至 资源选项卡,然后选择添加资源 > 添加现有文件...
  • 切换到 申请选项卡并单击 查看应用事件 按钮。
  • 将此代码添加到打开的 ApplicationEvents.vb 代码中。
    Private Sub AppStart(ByVal sender As Object, 
    ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup
    AddHandler AppDomain.CurrentDomain.AssemblyResolve, AddressOf ResolveAssemblies
    End Sub

    Private Function ResolveAssemblies(sender As Object, e As System.ResolveEventArgs) As Reflection.Assembly
    Dim desiredAssembly = New Reflection.AssemblyName(e.Name)

    If desiredAssembly.Name = "the name of your assembly" Then
    Return Reflection.Assembly.Load(My.Resources.STDLIB) 'replace with your assembly's resource name
    Else
    Return Nothing
    End If
    End Function
  • 现在编译您的项目,您会将依赖程序集作为单个文件合并到输出中。

  • 请注意,有时您可能在输出文件夹中有依赖程序集。这是因为 VS 已预先配置为将所有依赖程序集复制到输出路径。您可以通过访问 来覆盖它。引用文献 项目属性的选项卡,然后设置 复制本地依赖程序集的属性为 False。这将阻止程序集被复制到输出目录。

    关于vb.net - 如何将 "class project"中的 dll 嵌入到我在 vb.net 中的项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10025127/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com