Hey,
ich habe immoment ein Problem an dem ich wirklich zu knabbern habe.
Und zwar möchte ich mit Codedom eine EXE erstellen und ihr eine DLL hinzufügen.
Soweit so gut. Das sollte ja ziemlich einfach sein, dachte ich
Folgendes Problem: Die Exe wird erstellt, die DLL hinzugefügt und die Applikation gestartet.
Ich bekomme die Meldung: "test.exe funktioniert nicht mehr"
Ich weiß auch, woran es liegt. Sobald ich auf die DLL zugreifen möchte stürtz alles ab.
Aber wenn ich sie z.B. importiere (also im Code), meckert keiner
Sie scheint also irgendwie da zu sein. Wenn ich auch eine .dll nenne also z.B. Plugin2.dll, die nicht existiert, bricht der Compiler ab.
Hier mal mein Code:
Codedom.vb :
Spoiler anzeigen
Module1.vb (diese wird kompiliert)
plugin.dll
Wäre super nett, wenn wir jemand helfen könnte
ich habe immoment ein Problem an dem ich wirklich zu knabbern habe.
Und zwar möchte ich mit Codedom eine EXE erstellen und ihr eine DLL hinzufügen.
Soweit so gut. Das sollte ja ziemlich einfach sein, dachte ich
![:whistling:](https://www.vb-paradise.de/wcf/images/smilies/whistling.png)
Folgendes Problem: Die Exe wird erstellt, die DLL hinzugefügt und die Applikation gestartet.
Ich bekomme die Meldung: "test.exe funktioniert nicht mehr"
Ich weiß auch, woran es liegt. Sobald ich auf die DLL zugreifen möchte stürtz alles ab.
Aber wenn ich sie z.B. importiere (also im Code), meckert keiner
![?(](https://www.vb-paradise.de/wcf/images/smilies/confused.png)
Sie scheint also irgendwie da zu sein. Wenn ich auch eine .dll nenne also z.B. Plugin2.dll, die nicht existiert, bricht der Compiler ab.
Hier mal mein Code:
Codedom.vb :
VB.NET-Quellcode
- Imports System.CodeDom.Compiler
- Public Module Codedom
- Public Function Compile(ByVal OutputPath As String, ByVal cSource As String, ByVal debug As Boolean, Optional ByVal ResourceFiles As String() = Nothing, Optional ByVal IconPath As String = "", Optional ByVal Platform As String = "anycpu") As CompilerResults
- Dim Parameters As New CompilerParameters
- Parameters.GenerateExecutable = True
- Parameters.OutputAssembly = OutputPath
- Parameters.ReferencedAssemblies.Add("System.dll")
- Parameters.ReferencedAssemblies.Add("System.Data.dll")
- Parameters.ReferencedAssemblies.Add("System.Windows.Forms.dll")
- Parameters.ReferencedAssemblies.Add(Application.StartupPath & "\Plugin.dll")
- If ResourceFiles IsNot Nothing Then
- For Each rf As String In ResourceFiles
- Parameters.EmbeddedResources.Add(rf)
- Next
- End If
- Parameters.CompilerOptions = "/optimize+ /platform:" & Platform
- If (debug = False) Then
- Parameters.CompilerOptions &= " /debug- /target:winexe"
- End If
- If IconPath <> "" Then
- Parameters.CompilerOptions = Parameters.CompilerOptions & " /win32icon:" & IconPath
- End If
- Dim options As New Dictionary(Of String, String)
- options.Add("CompilerVersion", "v2.0")
- Dim Compiler As VBCodeProvider = New VBCodeProvider(options)
- Return Compiler.CompileAssemblyFromSource(Parameters, cSource)
- End Function
- End Module
Module1.vb (diese wird kompiliert)
plugin.dll
Wäre super nett, wenn wir jemand helfen könnte
![:thumbup:](https://www.vb-paradise.de/wcf/images/smilies/thumbup.png)
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „schockerjo“ ()