DLLs statisch linken in C#



  • Hi, ich hab gerade erste erfahrungen in c# gemacht. hab eine windows forms anwendung geschrieben. ich kenne noch von mfc dass man dlls statisch linken konnte. gibt es diese option für ein c# projekt auch oder wird das automatisch gemacht? wenn ja, wo kann man diese einstellungen finden?

    danke im voraus.



  • DLLs kann man nicht statisch linken. Die MFC kann man statisch linken, weil sie in zwei Ausführungen kommt, einmal eine Variante, die als statische Bibliothek kompiliert ist und einmal eine DLL-Variante...



  • DLL: dynamicly linked library... Würde mich wundern wenn sie sich statisch einbinden ließen.



  • Naja man kann statisch gegen die Import-Lib der DLL linken, oder die DLL mit LoadLibrary laden und dann mit GetProcAddress die Symbole rauskletzeln. Glaub aber nicht dass das so gemeint ist.

    Davon abgesehen: Es gibt Tools die mehrere Assemblies zu einer einzigen .exe verbasteln, aber AFAIK nix offizielles von MS supportetes.



  • Ich bin ganz froh, dass es sowas wie das statische Linken in .NET Umgebungen nicht gibt. - Durch das dynamische Linken ist man doch deutlich flexibler, so kann man z.B. einzelne DLL's austauschen ohne gleich die ganze Anwendung neu zu kompilieren.



  • Verstehe nicht wieso man immer alles verbieten muss was nicht das ist was man für besser hält.



  • https://github.com/Microsoft/ILMerge
    Wobei das nicht zwangsweise mit jeder .Net-Version kompatibel ist.

    Ich rate auch vom statischen Linken unter .NET ab. Es nimmt Flexibilität, es macht Updates größer...


Log in to reply