Das .NET-Äquivalent zu statischen Bibliotheken?
Ich erstelle ein Tool in verwaltetem Code (hauptsächlich C ++ / CLI) in zwei Versionen, einer "normalen Benutzer" -Version und einer "Pro" -Version.
Die Tatsache, dass der Kerncode zwischen den beiden Versionen identisch ist, hat mir ein wenig Probleme bereitet, da ich das resultierende Tool als einzelne Assembly (DLL) packen möchte und die CPP-Dateien nicht für das Common einschließen muss Code in den Projekten der beiden Versionen der Tools. Ich hätte lieber ein Projekt für den gemeinsamen Code und ein Projekt für jede Version des Tools, und jede Version des Tools-Projekts hängt vom gemeinsamen Code ab und verknüpfe ihn wie gewünscht.
In nicht verwaltetem C ++ würde ich dazu den allgemeinen Code in eine statische Bibliothek einfügen und beide Versionen des Tools damit verknüpfen. Ich scheine nicht in der Lage zu sein, dies in C ++ / CLI zum Laufen zu bringen. Es scheint, dass ich gezwungen bin, den allgemeinen Code in eine DLL-Assembly zu integrieren, was zu mehr DLLs führt, als ich möchte.
Zusammenfassend kann ich also nicht herausfinden, wie der gemeinsame Code in einem Projekt erstellt und mit jedem der endgültigen Produktprojekte verknüpft werden kann, um zwei einzelne DLL-Assemblys zu erstellen, die beide den gemeinsamen Code enthalten.
Wahrscheinlich mache ich etwas falsch, aber ich habe versucht, mithilfe von Netzmodulen und was auch immer herauszufinden, wie das funktioniert, und konnte es einfach nicht zum Laufen bringen. Am Ende war der einzige Weg, wie ich es zum Laufen brachte, dem Linker zu sagen, er solle die Build-Produkte der allgemeinen Code-Assembly verlinken, anstatt die Ergebnisse, die funktionieren, aber meiner Meinung nach ein bisschen hacken.
Wie auch immer, hat jemand Vorschläge, wie ich dieses Problem lösen SOLLTE?
Bearbeitet: Ich hätte wohl erwähnen müssen, dass die generierten Assemblys nicht zu 100% aus verwaltetem Code bestehen, sondern eine Mischung aus verwaltetem und nicht verwaltetem Code enthalten, wie es wahrscheinlich bei Assemblys, die mit C ++ / CLI erstellt wurden, üblich ist ...