manifest hell



  • weil's mich gerade wieder stunden beschäftigt hat, und ich aus reiner wut ein gesteigertes mitteilungsbedürfnis habe:

    manifests sind der größte scheiß den microsoft jemals eingeführt hat!!1 😡 😡



  • ok



  • für was sollen die dinger eigentlich gut sein? braucht die irgendwer?



  • ja schrieb:

    für was sollen die dinger eigentlich gut sein? braucht die irgendwer?

    http://msdn.microsoft.com/en-us/library/aa375365(VS.85).aspx

    leider ja, sonst laufen die kompilate nicht. sie würden mich auch überhaupt nicht stören, wenn sie mich als entwickler nicht erheblich in meiner entscheidungsfreiheit einschränken würden.



  • Wo behindern sie dich denn? Kannst Du Beispiele nennen? Ich persönlich finde, das Manifests endlich mal nötig waren. Natürlich muß man sich dann auch damit auseinandersetzen, aber so ist das halt, wenn etwas neues kommt.



  • BarnieGeroellheimer schrieb:

    Wo behindern sie dich denn? Kannst Du Beispiele nennen? Ich persönlich finde, das Manifests endlich mal nötig waren. Natürlich muß man sich dann auch damit auseinandersetzen, aber so ist das halt, wenn etwas neues kommt.

    sie behindern mich nicht, sie schreiben mir sachen vor, die ich nur mit erheblichen arbeitsmehraufwand umgehen kann. wenn ich zum beispiel ein großes projekt (welches ich nicht erstellt habe) kompiliere und dynamisch gegen msvcrt linken lasse, ist eine redistribution nur mit einschränkungen möglich. entweder ich nötige den nutze dazu die vc-redistributable von microsoft zu installieren oder ich muss mir wirklich die arbeit machen ein script zu schreiben welches alle manifests aus den dll's und executables extrahiert, die publickeytokens raushaut und die manifests dann wieder einbettet. und dieser arbeitsmehraufwand ist es der mich aufregt, auch wenn es meist einmalige sachen sind. dass das ganze undokumentiert seitens microsoft ist, regt mich dabei am meisten auf. und ich bin mir sicher das mit VC10 wieder irgendwelcher neuer kram dazu kommt, der mir das leben schwer machen wird 😞



  • Mit dem Kram hab ich mich kaum befasst. Bei meiner Anwendung habe ich die DLLs mfc*.dll und msvc*.dll in entsprechenden Ordnern unterhalb meines Programms abgelegt. Da muss nichts installiert werden.
    Ok, das war ein einfaches MFC Projekt.



  • sothis_ schrieb:

    sie behindern mich nicht, sie schreiben mir sachen vor, die ich nur mit erheblichen arbeitsmehraufwand umgehen kann. wenn ich zum beispiel ein großes projekt (welches ich nicht erstellt habe) kompiliere und dynamisch gegen msvcrt linken lasse, ist eine redistribution nur mit einschränkungen möglich. entweder ich nötige den nutze dazu die vc-redistributable von microsoft zu installieren oder ich muss mir wirklich die arbeit machen ein script zu schreiben welches alle manifests aus den dll's und executables extrahiert, die publickeytokens raushaut und die manifests dann wieder einbettet. und dieser arbeitsmehraufwand ist es der mich aufregt, auch wenn es meist einmalige sachen sind. dass das ganze undokumentiert seitens microsoft ist, regt mich dabei am meisten auf. und ich bin mir sicher das mit VC10 wieder irgendwelcher neuer kram dazu kommt, der mir das leben schwer machen wird 😞

    Einfach die CRT/MFC ohne Manifeste selbst kompilieren. Dann ist man dieses Problem für immer los.



  • http://msdn.microsoft.com/de-de/library/ms235291(VS.80).aspx

    2. Abschnitt "Bereitstellen von Visual C++-Bibliotheks-DLLs als private Assemblys"



  • sri schrieb:

    Einfach die CRT/MFC ohne Manifeste selbst kompilieren. Dann ist man dieses Problem für immer los.

    guter tip, hätt' ich auch selbst draufkommen können 😣 🙂 👍



  • Was bringen sie den nun für nen vorteil?



  • sothis_ schrieb:

    sri schrieb:

    Einfach die CRT/MFC ohne Manifeste selbst kompilieren. Dann ist man dieses Problem für immer los.

    guter tip, hätt' ich auch selbst draufkommen können 😣 🙂 👍

    Schau mal hier:

    http://blog.speedproject.de/2007/11/30/vs-2008-cc-laufzeit-selbst-kompilieren/
    http://blog.speedproject.de/2007/12/01/vs-2008-mfc-selbst-kompilieren/

    ja schrieb:

    Was bringen sie den nun für nen vorteil?

    Für .NET-Assemblies mag es wohl Vorteile geben, als nativer Programmierer habe ich bisher noch keine Vorteile gesehen (mit Ausnahme der UAC-Abschnitte).

    Habe gerade mal die Größe meines Windows-Ordners ermittelt (Vista x64). Das gesamte Windows-Verzeichnis ist 17,6 GiB groß, das WinSxS-Verzeichnis allein beansprucht davon schon 10,2 GiB.



  • sri schrieb:

    sothis_ schrieb:

    sri schrieb:

    Einfach die CRT/MFC ohne Manifeste selbst kompilieren. Dann ist man dieses Problem für immer los.

    guter tip, hätt' ich auch selbst draufkommen können 😣 🙂 👍

    Schau mal hier:

    http://blog.speedproject.de/2007/11/30/vs-2008-cc-laufzeit-selbst-kompilieren/
    http://blog.speedproject.de/2007/12/01/vs-2008-mfc-selbst-kompilieren/

    Wieso willst du dir das antun, wenn du die DLLs einfach kopieren kannst? Du musst nur die Ordnerstruktur (2 Ordner) beachten.



  • Warum nicht einfach ein MSI-Projekt anlegen, die Sachen mit Drag & Drop rein und Build. Fertig! Der User muß nichts als Admin installieren, landet alles im Programmordner. mit Manifeste habe ich noch nie Probleme gehabt. Und eine MFC selber kompilieren? PENG! Damit machst du die DLL-Hölle noch schlimmer!



  • ihoernchen schrieb:

    Wieso willst du dir das antun, wenn du die DLLs einfach kopieren kannst? Du musst nur die Ordnerstruktur (2 Ordner) beachten.

    weil dies eben nicht funktioniert, wenn projekteigene dll's nicht im selben verzeichnis wie die executable liegt



  • BarnieGeroellheimer schrieb:

    Damit machst du die DLL-Hölle noch schlimmer!

    das ist irrelevant wenn ich die crt anders als msvcrtxx.dll benenne 🙂 manifests haben imho eher einiges unnötig verkompliziert als übersichtlicher und wartbarer gemacht. und da rege sich noch jemand über abhängigkeiten unter linux auf, das ist meiner meinung nach wesentlich besser gelöst als unter windows 🙂



  • ihoernchen schrieb:

    Wieso willst du dir das antun, wenn du die DLLs einfach kopieren kannst? Du musst nur die Ordnerstruktur (2 Ordner) beachten.

    Und das funktioniert auch unter Windows 2000?

    Letztlich muss man den (recht geringen) Aufwand nur einmal betreiben und hat dann ein sorgenfreies Leben. Wenn ich mir die vielen Topics und Blogeinträge zu den Manifestproblemen anschaue, dann hat sich für mich die dafür aufgewandte Zeit schon lange rentiert.

    BarnieGeroellheimer schrieb:

    Warum nicht einfach ein MSI-Projekt anlegen, die Sachen mit Drag & Drop rein und Build. Fertig! Der User muß nichts als Admin installieren, landet alles im Programmordner. mit Manifeste habe ich noch nie Probleme gehabt. Und eine MFC selber kompilieren? PENG! Damit machst du die DLL-Hölle noch schlimmer!

    Die MFC ist eine Dll wie jede andere auch. Und solange alles sauber in das Anwendungsverzeichnis installiert wird, gibt es keine Probleme mit anderen Anwendungen.



  • sothis_ schrieb:

    manifests haben imho eher einiges unnötig verkompliziert als übersichtlicher und wartbarer gemacht.

    so ist das nun mal bei microsoft. denk doch nur mal an die registry. das war auch so'ne extrem schwachsinnige erfindung.
    🙂


Log in to reply