Ich habe mich lange umgesehen und kann keine Informationen zum Ändern verwalteter Ressourcen in Assemblys finden (beachten Sie, dass ich bereits mit Win32-Ressourcen und den APIs zur Änderung dieser vertraut bin).Wie kann ich Ressourcen in CLR-Assemblys hinzufügen, löschen und aktualisieren?
Meine Anwendung verfügt über Ressourcen, die vom Endbenutzer aktualisiert werden müssen, und die Anwendung wird als einzelne ausführbare Datei verteilt (so kann ich nicht einfach Satelliten-Assemblies verwenden).
Ich sehe ein paar mögliche Abhilfen, aber sie scheinen hackish:
Die erste ist ILMerge zu verwenden: Ich habe eine neue Baugruppe im Speicher schaffen würde, die die neuen Ressourcen enthält und verwenden ILMerge es zu kombinieren mit der Originalmontage zum neuen Programm. Der einzige Nachteil ist, dass Ressourcen nicht aktualisiert oder gelöscht werden können.
Die zweite ist etwas ähnlich: Es würde ein .netmodule (aus dem C# -Compiler), die gegen al.exe mit dem/embed-Schalter ausgeführt wird, um die Ressourcen zum Bilden der neuen Assembly hinzufügen. Der Nachteil ist, dass keine Ressourcen in der ursprünglichen Assembly vorhanden sind.
Ich bin auf die Option ILMerge gelehnt, aber die Bedingungen für die Neuverteilung sind mehrdeutig. Die EULA nimmt keinen Bezug auf Umverteilungsrechte (so nehme ich an, dass es in dieser Negativ Freedom Gesellschaft erlaubt ist), aber die Microsoft Research Seite sagt Umverteilung ist nicht erlaubt (aber es ist zweideutig formuliert, von dem, was ich sagen kann, könnte es sich auf kommerzielle Umverteilung beziehen, was für mich nicht gelten würde, da es sich um ein gemeinnütziges GPL-Projekt handelt).
Dank