Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Ergebnis 1 bis 7 von 7

Thema: libnodave.dll in eigenes exe-Projekt integrieren

  1. #1
    Registriert seit
    14.02.2011
    Beiträge
    3
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe mir ein Programm geschrieben, dass u.a. die libnodave.dll verwendet. Jetzt möchte ich nicht, dass die DLLs immer neben der EXE liegen müssen, sondern die Bibliotheken sollen in die EXE integriert werden.

    Eine andere DLL für OPC kann ich problemlos mit ILMerge (http://www.microsoft.com/downloads/e...displaylang=en) in die EXE packen, libnodave.dll wird verweigert:
    Code:
    ILMerge.Merge: Could not load assembly from the location 'C:\bin\Release\libnodave.dll'. Skipping and processing rest of
    Implemtiert wurde das Programm in C# unter MS Visual Studio 2010 Pro und soll unter .NET 2.0 laufen.
    Hat jemand schon einmal ähnliches umgesetzt, kennt die Lösung des Problems oder eine Alternativ?
    Danke!
    Zitieren Zitieren libnodave.dll in eigenes exe-Projekt integrieren  

  2. #2
    Registriert seit
    30.06.2007
    Ort
    Minden (Westf.)
    Beiträge
    178
    Danke
    42
    Erhielt 21 Danke für 21 Beiträge

    Idee

    Auf der Download-Seite steht:
    ILMerge is a utility for merging multiple .NET assemblies into a single .NET assembly
    Die libnodave.dll ist aber kein .NET - Assenbly, sondern reines C++.

    Gruß
    Stefan


    Zitieren Zitieren is not (nett) .NET  

  3. Folgender Benutzer sagt Danke zu StefanK für den nützlichen Beitrag:

    Loep (24.03.2011)

  4. #3
    Registriert seit
    03.12.2010
    Ort
    Ostrach/Bachhaupten
    Beiträge
    12
    Danke
    1
    Erhielt 52 Danke für 6 Beiträge

    Standard

    Kuck dir das mal an.
    Vielleicht hilft es dir weiter.

    http://blog.mahop.net/post/Merge-WPF-Assemblies.aspx

    Gruß Jürgen

  5. #4
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Wird mit ilmerge definitv nicht gehen, da dies nur managed dlls mit einbinden kann!

    Infos gibts z.b. Hier: http://stackoverflow.com/questions/6...-managed-c-dll
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  6. Folgender Benutzer sagt Danke zu Jochen Kühner für den nützlichen Beitrag:

    Loep (24.03.2011)

  7. #5
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.746
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Wenn das ganze noch ohne temporäre DLL sein soll, ist viel. Noch folgendes interesant: http://pasotech.forumfree.it/?t=36949777 aber ob man das auch mit managed code nutzen kann...
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  8. #6
    Registriert seit
    30.06.2007
    Ort
    Minden (Westf.)
    Beiträge
    178
    Danke
    42
    Erhielt 21 Danke für 21 Beiträge

    Standard

    Hier eine Alternative, komplett .NET

    s7net

    Gruß


    Zitieren Zitieren Alternative  

  9. #7
    Loep ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    14.02.2011
    Beiträge
    3
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    StefanK, danke für den Hinweis. Mir war nicht klar, dass ILMerge nur .NET Assemblies kann bzw. libnodave als C++ kein .NET ist.

    Danke Jochen, ich habe mir daraus eine Lösung gebastelt, da temporäre DLLs ok sind. Ich will nur sicherstellen, dass das Programm auch dann läuft, wenn jemand die lokalen DLLs gelöscht haben sollte.
    ILMerge nutze ich nun gar nicht mehr und nutze die Funktion auch für die anderen DLLs: wenn ich ILMerge in den Buildprozess eintrage, macht VS im Debugmode Probleme.

    Code:
    privatestaticvoid exportiereDLLs()
    {
    Dictionary<String, byte[]> dlls = newDictionary<String, byte[]>();
    dlls.Add("libnodave.dll", Properties.Resources.libnodave);
    dlls.Add("weitereDLLs.dll", Properties.Resources.weitereDLLs);
    // interne Ressource in externe Datei kopoieren
    foreach (KeyValuePair<String, byte[]> dll in dlls)
    {
    if (!File.Exists(dll.Key))
    {
    using (Stream outFile = File.Create(dll.Key))
    {
    outFile.Write(dll.Value, 0, dll.Value.Length);
    }
    }
    }
    }
    

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 13.11.2010, 16:17
  2. IPC477C in S7-Projekt integrieren
    Von Wolfi_L im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 13.10.2010, 13:24
  3. S7-Projekt integrieren
    Von blue dun im Forum HMI
    Antworten: 0
    Letzter Beitrag: 04.03.2010, 13:41
  4. WIN CC flexibel Projekt integrieren
    Von feeli im Forum HMI
    Antworten: 5
    Letzter Beitrag: 12.02.2007, 09:37

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •