2009-07-20 11 views
0

Ich erstelle .net Websites gegen einen CMS-Server mit der API des Softwarehändlers.Hinzufügen von .net DLL-Abhängigkeiten zu einem Projekt

Das Problem ist, dass ich für jede Version der CMS-Software verschiedene DLLs (meist unversioniert) habe, mit denen ich mich befassen muss.

Also, jetzt bau ich einige wiederverwendbare Server-Komponenten, die von diesen DLLs abhängen, aber da ich diese Komponenten gegen verschiedene Websites mit verschiedenen DLL-Versionen verwenden möchte, muss ich eine Möglichkeit finden, die Abhängigkeiten zu wechseln.

Ist es möglich, alle Abhängigkeiten in einer einzigen DLL zu bündeln (und die ursprünglichen Namespaces beizubehalten)?

Antwort

1

Es gibt ILMerge von Microsoft Research, die es Ihnen ermöglicht, mehrere Assemblies zu einem einzigen zu kombinieren und ursprüngliche Namespaces beizubehalten.

+0

Das Werkzeug leistet hervorragende Arbeit. Es gibt einige Assemblys, die nicht zusammengeführt werden konnten, aber es scheint vielversprechend zu sein. – Pablo

0

Wenn ein Namespace-Konflikt auftritt, werden Sie eventuell gezwungen, die DLL dynamisch zu laden. Sie können dies mit der Assembly-Klasse und ein wenig Nachdenken tun, um die entsprechenden Einstiegspunkte zu erhalten.

Kurz gesagt, Sie würden nicht auf die API-Kompilierzeit angewiesen sein und stattdessen einen eigenen Wrapper erstellen, der diesen Wrapper mithilfe von (durch Reflektion) aufgerufenen Aufrufen der DLL implementiert. Ich bin mir sicher, dass dies in C# 4.0 einfacher ist, aber es wird auch in 1.0 gut funktionieren.

Verwandte Themen