4

Вопрос по dll, vb.net – Как встроить dll из «проекта класса» в мой проект в vb.net

У меня есть стандартная «библиотека классов» проект с набором классов, которые я использую для импорта практически во все мои новые проекты.

Я работаю над созданием нового Решения с пустым проектом, который является моим основным проектом, и затем я добавляю к решению упомянутый проект библиотеки классов, таким образом я могу видеть оба проекта в Soluction Explorer и даже видеть код библиотеки. или обновите его, если необходимо. Затем я пишу код в моем основном проекте и компилирую.

Это приводит меня к 2 файлам при компиляции: файл * .exe и stdlib.dll

В некоторых случаях я использую lib для очень маленьких инструментов, которые я хочу перераспределить по простой и понятной причине, поэтому я хотел бы встроить stdlib.dll, сгенерированный из моего проекта библиотеки классов, в мой файл * .exe.

Я почти уверен, что должна быть причина для этого в моем Microsoft Visual Basic 2010 Express, но я не знаю, как это сделать.

Любое предложение?

Большое спасибо заранее.

  • Error: User Rate Limit Exceeded

    от
  • Error: User Rate Limit Exceeded

    от
  • A small note for those wondering:Error: User Rate Limit Exceeded"the name of your assembly"Error: User Rate Limit ExceededMicrosoft.WindowsAPICodePackError: User Rate Limit Exceeded"Microsoft.WindowsAPICodePack".

    от
  • Error: User Rate Limit Exceeded

    от Alex
  • Error: User Rate Limit ExceededBecause this is how it works.Error: User Rate Limit Exceeded

    от
  • stackoverflow.com/questions/27891550/…Error: User Rate Limit Exceeded

    от bigworld12
  • 9

    Error: User Rate Limit Exceeded

    Add the desired assembly (stdlib.dll) to the project's resources.
    Go to the Resources tab of the Project Properties and choose Add Resource > Add Existing File... Switch to the Application tab and click on the View Application Events button.

    Add this code to the ApplicationEvents.vb code that opens.

    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 
    

    Now compile your project and you'll have the dependent assembly incorporated into the output as a single file.

    ReferencesCopy LocalFalse

  • 1

    Error: User Rate Limit Exceeded

    Assembly

    HandlerAppDomain.CurrentDomain.AssemblyResolve

       AddHandler AppDomain.CurrentDomain.AssemblyResolve,
                Function(sender As Object, args As System.ResolveEventArgs) As System.Reflection.Assembly
                    Dim ressourceName = "YourNamespace.YourSubNamespace." + New AssemblyName(args.Name).Name + ".dll"
                    Using stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(ressourceName)
                        Dim assemblyData(CInt(stream.Length)) As Byte
                        stream.Read(assemblyData, 0, assemblyData.Length)
                        Return Assembly.Load(assemblyData)
                    End Using
                End Function