2014-09-24 7 views
6

Die Windows Azure Client-Bibliotheken sind sehr groß (mehrere MB), und ich habe ein ziemlich kleines Projekt (in der Größenordnung von ein paar hundert KB), das nur ein paar Funktionen von ihnen verwendet. Gibt es eine Möglichkeit für mich, diese Funktionen zum Zeitpunkt der Erstellung zu verknüpfen, so dass die resultierende DLL nicht stark aufgebläht wird und ich die Funktionen zur Laufzeit nicht verknüpfen muss?Statische Verknüpfung in C#?

So etwas wie http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx, aber ich habe den Eindruck, dass Bündel in der gesamten DLL.

Danke!

Edit: Da die Größe der endgültigen lieferbaren DLL externen Beschränkungen unterliegt, ist das Aufblasen so viel eine absolute letzte Möglichkeit - die einzige andere Option, die mir bekannt ist, besteht darin, den Code, den ich wörtlich verwende, zu duplizieren.

+0

@BradleyDotNET paraphrasieren: Nein – spender

+0

@spender Umgerechnet auf eine Antwort, die die gleiche Sache sagt :) – BradleyDotNET

+0

+1 für die Technik von Jeffrey Richter – kennyzx

Antwort

5

In einem Wort: No.

Denken Sie daran, dass, obwohl Sie nur ein paar Funktionen verwenden, wahrscheinlich gibt es viele andere Funktionen in der Bibliothek, die diese Funktionen verwenden, die Sie nicht einmal kennen!

Sie können dies nicht tun, da Sie nicht auf alle Abhängigkeiten zugreifen können. Denken Sie daran, dass diese Abhängigkeiten auch in einer anderen DLL enthalten sein können, und Sie müssen , dass gesamte DLL aus dem gleichen Grund enthalten.

+0

Also, selbst wenn die Menge der Funktionen, die ich benutze, auch nur indirekt, eine winzige Teilmenge der gesamten Funktionalität der Bibliothek ist, muss ich eine Reihe von unbenutzten und nicht verwandten Dingen einziehen, um sie zu benutzen? – bfops

+0

@bfops Ja. Die Designer haben beschlossen, all das in eine Bibliothek zu kapseln, und es gibt wirklich nicht viel, was man dagegen tun kann. Wenn es * Ihre * Bibliothek wäre, könnten Sie einfach die Funktionen und ihre Abhängigkeiten in Ihr Projekt kopieren, aber da es nicht so ist, stecken Sie ziemlich fest. – BradleyDotNET

+0

Ist das nicht ein Problem mit C#? In C oder C++ bin ich ziemlich sicher, dass ich eine Bibliothek statisch verknüpfen kann und nur die tatsächlich verwendeten Funktionen in der endgültigen ausführbaren Datei landen. Meine Optionen hier sind massive Bloat oder Code-Duplizierung. – bfops

3

Was Sie suchen, klingt sehr nach .NET Native. Leider nur für Sie, seine einzige Vorschau und jetzt funktioniert nur mit Store-Apps für Geräte. wie diese Aussagen

Wir werden weiterhin für den Bereich von .NET-Anwendungen

im Internet gefunden werden kann, aber nichts Konkretes über Web-Anwendungen \ Azure nativen Kompilierung entwickeln und zu verbessern.

Bis dahin Antwort ist Nein