dll´s statisch linken?



  • Hallo!
    Auf Youtube findet man ein Video, wo erklärt wird, wie man bei visual studio 2008 c++ die benötigten dll´s in die .exe packen kann. Diese möglichkeit gibt es bei visual studio 2010 c# anscheinend nicht, was bedeutet, dass man das gesamte net-Framework installieren müsste. Liege ich damit richtig, oder habe ich den button für codegenerierung einfach übersehen?
    Ich hoffe ihr versteht mich und könnt mir helfen! 🙂



  • Hallo,

    wenn du verschiedene Assemblies deines Projektes zusammenfassen möchtest, dann schau dir mal ILMerge an. Diese benötigen aber weiterhin die entsprechende installierte .NET-Framework Version (auf dem Zielrechner).

    Um komplett eine einzige Executable zu erzeugen, kannst du mal NETZ ausprobieren. Es wird aber weiterhin eine installierte .NET-Runtime vorausgesetzt.



  • und eine möglichkeit wie bei c++ projekten ist nicht möglich?


  • Administrator

    DilBahadur schrieb:

    und eine möglichkeit wie bei c++ projekten ist nicht möglich?

    Naja, wie Th69 gesagt hat, du brauchst trotzdem noch die .Net Runtime. Kompilierter C# Code ist kein Maschinencode sondern CLI Code. Dieser wird dann erst auf der Zielmaschine von der .Net Runtime in Maschinencode übersetzt.

    Das ist ähnlich wie bei Java. Da musst du auch in irgendeiner Form noch die JVM mitausliefern, denn ohne geht es nicht.

    Unter C# macht es daher keinen grossen Sinn, die .Net DLLs statisch zu linken, da mit der Installation der .Net Runtime diese DLLs sowieso auf der Zielmaschine installiert werden. Zudem haben einigermasen aktuell gehaltene Windowsmaschine sowieso eine .Net Runtime installiert, da diese über Windows Update ausgeliefert werden. Und notfalls kann man dies über einen Installer ganz einfach nachinstallieren. Z.B. unterstützt Inno Setup Anweisungen zum prüfen, ob die korrekte .Net Runtime bereits installiert ist und kann abhängig davon weitere Schritte ausführen. Ich bin mir recht sicher, dass WiX und NSIS ähnliche Möglichkeiten zur Verfügung stellen.

    Grüssli



  • Vielen Dank an alle die mir geholfen haben!

    Ich werde es mal versuchen, das Net-Framework auf unseren alten Schulrechnern zum laufen zu bringen.


Anmelden zum Antworten