Sto costruendo uno strumento in codice gestito (principalmente C++/CLI) in due versioni, una versione "utente normale" e una versione "pro".L'equivalente .NET delle librerie statiche?
Il fatto che il codice principale sia identico tra le due versioni mi ha causato un piccolo problema poiché voglio impacchettare lo strumento risultante come un singolo assembly (DLL) e non voglio dover includere il .cpp file per il codice comune nei progetti delle due versioni degli strumenti. Preferirei avere un progetto per il codice comune e un progetto per ogni versione dello strumento e ogni versione del progetto degli strumenti dipende dal codice comune e collegarlo come desiderato.
In C++ non gestito farei questo posizionando il codice comune in una libreria statica e collegando ad esso entrambe le versioni dello strumento. Non riesco a farlo funzionare in C++/CLI. Sembra che sono costretto a costruire il codice comune in un assembly DLL e che risulta in più DLL di quanto vorrei.
Quindi, in sintesi, non riesco a capire come creare il codice comune in un progetto e collegarlo a ciascuno dei progetti del prodotto finale per produrre due singoli assembly DLL che includono entrambi il codice comune.
Probabilmente sto facendo qualcosa di sbagliato, ma ho cercato di capire come farlo usando i netmodules e qualsiasi altra cosa e non riuscivo a farlo funzionare. Alla fine l'unico modo in cui l'ho fatto funzionare è stato dire al linker di collegare i prodotti di costruzione dell'assembly di codice comune piuttosto che i risultati che funzionano ma è un po 'un hack IMHO.
In ogni caso, qualcuno ha qualche suggerimento su come DOVREBBE risolvere questo problema?
Modificato: credo avrei accennato al fatto che le assemblee generati non sono al 100% di codice gestito, che contengono un misto di codice gestito e non gestito come è, probabilmente, abbastanza comune con i gruppi di prodotti con C++/CLI ...
Consiglio vivamente di eliminare l'idea che è necessario comprimerlo in una singola DLL. –