Verweise bzw nicht verwendete Dll's und xml's

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Verweise bzw nicht verwendete Dll's und xml's

    Hallo Leute.
    Bin relativ neu in VS2019 und hab via Nuget für SQLite und Excel entsprechende Packete installiert.
    nun meine Frage: Sind da jetzt echt die ganzen DLL's und XML's von nöten?
    Ich mein Damals in 2010 hatte man einfach die Dll importiert und eingebunden fertig...aber da werden gleich soviele Dlls und xmls mitgeliefert.
    Und wenn wirklich alle von nöten sind ... kann man die in einen extra Ordner Packen?

    Danke für eure Zeit.

    LG
    Bilder
    • Unbenannt1.PNG

      24,31 kB, 328×740, 67 mal angesehen
    • Unbenannt2.PNG

      69,42 kB, 949×779, 71 mal angesehen
    • Unbenannt3.PNG

      3,85 kB, 269×106, 191 mal angesehen
    • Unbenannt4.PNG

      68,89 kB, 795×666, 70 mal angesehen
    GOOGLE ist mein Meister :)
    Alles klar super danke dir dafür.
    Lassen sich die dlls irgendwie in einen Unterordner verschieben? LG
    GOOGLE ist mein Meister :)

    Bady schrieb:

    Lassen sich die dlls irgendwie in einen Unterordner verschieben?
    Ja.
    Trage den relativen Pfad in der app.config ein:

    XML-Quellcode

    1. <configuration>
    2. <runtime>
    3. <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    4. <probing privatePath="bin;bin2\subbin;bin3"/>
    5. </assemblyBinding>
    6. </runtime>
    7. </configuration>

    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. <probing privatePath="bin;bin2\subbin;bin3"/>

    Wie wird der Pfad den eingesetzt wenn ich die Dlls in den unterordner DLLs haben möcht?

    VB.NET-Quellcode

    1. <probing privatePath="DLLs\meine.dll"/>
    ?

    lg
    GOOGLE ist mein Meister :)
    @Bady Nur der Pfad:

    XML-Quellcode

    1. <probing privatePath="DLLs"/>
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany
    Vielen lieben Dank. Jedoch werden die Dlls dennoch im debug Ordner erstellt wenn ich neu erstelle und wenn ich die verschiebe funktionierts leider nicht?
    Mach ich was falsch?
    LG
    GOOGLE ist mein Meister :)

    Bady schrieb:

    Jedoch werden die Dlls dennoch im debug Ordner erstellt
    Dann war das ein interkulturelles Missverständnis.
    Also von vorn.
    Wenn Du in Deiner Projektmappe ein (oder mehrere) DLL-Projekt(e) hast und Du dieses Projekt dem Hauptprogramm als Verweis hinzugefügt hast, werden diese DLLs neben die Exe kopiert.
    Wenn Du Fremd-DLLs in Deinem Projekt hast, werden die Assemblies darunter neben die Exe kopiert, sofern auf sie verwiesen wird und Du sie in einem anderen Verzeichnis bereitstellst.
    Um native DLLs musst Du Dich selber kümmern.
    Wenn Du die DLL-Projekte nicht Deinem Hauptprogramm als Verweis hinzufügst, kannst Du sie im PostBuild-Step in ein Unterverzeichnis Deiner Wahl kopieren und wie oben besprochen darauf zugreifen.
    Wenn diese Assemblies Satelliten-DLLs mitbringen, müssen diese neben ihrer "Parent-DLL" liegen.
    Ich hoffe, dass das jetzt verständlich war.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Vielen Lieben Dank für die ausführlich Veranschaulichung!
    Hat alles prima geklappt! :)

    Habe da allerdings noch eine Frage: neben der EXE liegt ja auch die .exe.config.
    Lässt sich die irgendwie verstecken oder verschieben etc...?

    LG
    GOOGLE ist mein Meister :)
    In der

    Bady schrieb:

    .exe.config
    sind die Application-Settings drinne, dort werden auch Änderungen davon abgelegt.
    Sieh mal in die app.config in Deinem Projekt, ob da Settings drinne sind.
    Wenn nicht, kannst Du die Datei weglassen.
    Ich geh mal davon aus, dass Du keine solchen Settings verwendest.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    EaranMaleasi schrieb:

    wo nach den DLLs gesucht werden soll?
    Ja, aber die Standardwerte sind (glaub ich) in der Exe, Änderungen werden da abgespeichert.
    Ich hab Programme ausgeliefert, da war (initial) keine .exe.config dabei und es hat funktioniert.
    Die DLL-Pfade werden ja nicht geändert, es wäre aber einen Test wert, dies mal zu tun. :D
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    In der

    Bady schrieb:

    .exe.config
    sind die Application-Settings drinne, dort werden auch Änderungen davon abgelegt.
    Sieh mal in die app.config in Deinem Projekt, ob da Settings drinne sind.
    Wenn nicht, kannst Du die Datei weglassen.
    Ich geh mal davon aus, dass Du keine solchen Settings verwendest.



    EaranMaleasi schrieb:

    @RodFromGermany Ist dort nicht auch festgehalten, wo nach den DLLs gesucht werden soll?

    @Bady andere Frage, was genau versucht du zu erreichen? Willst du nacher nur noch eine .exe auf dem Desktop haben, oder wie soll ich mir das vorstellen?



    @RodFromGermany Doch ich verwende Settings bzw stehen sie auch in der .exe.config
    Genau deswegen würd ich die gern nicht neben der exe haben.

    @EaranMaleasi Ganz genau. Ich möchte eine schöne Ordnerstruktur erziehlen wo die Dlls in einem Ordner sind (funktioniert auch wunderbar) und nur die exe da liegt.
    Jedoch kann ich die exe.config nicht weglassen da mir das Programm sonst nicht startet.


    Vielen lieben Dank

    LG


    PS: Ich hätte dass nun so versucht:

    VB.NET-Quellcode

    1. AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", "Dlls\myapp.exe.config")

    jedoch leider ohne Erfolg.

    GOOGLE ist mein Meister :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Bady“ ()

    Bady schrieb:

    Genau deswegen würd ich die gern nicht neben der exe haben.
    Das geht nicht.
    Gugst Du hier:
    docs.microsoft.com/de-de/dotne…ngs?view=netframework-4.8
    =====
    Hilft Dir vielleicht dies hier weiter:
    UserSettingsProvider (Persistieren von UserSettings)
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RodFromGermany“ ()