Nota: questo è per un negozio che funziona in C++, C++/CLI e C# con alcuni prodotti forniti come una combinazione di tutti e tre.Un progetto di Visual Studio dovrebbe essere contenuto in più di una soluzione?
Attualmente abbiamo una regola per cui un progetto dovrebbe avere una sola soluzione contenente. La regola è stata originariamente creata perché il plug-in del controllo del codice sorgente per Visual Studio non è stato in grado di gestire i progetti contenuti in più soluzioni, tentando sempre di modificare i collegamenti del controllo origine quando si passa da una soluzione all'altra.
Per altre ragioni, smetteremo di utilizzare il plug-in del controllo sorgente del tutto (non lasciando cadere il controllo della fonte, solo il plug-in senza cervello). Riafinisce la questione se continuare o meno la politica di restrizione dei progetti da contenere in un'unica soluzione.
Abbiamo un bel po 'di codice in librerie, DLL e assiemi che sono consumati da più prodotti consegnabili, e attualmente lo controlliamo con un sistema di gestione delle dipendenze tra soluzioni in cui, se si sta lavorando nella soluzione per un prodotto finale, è semplice richiedere una build delle soluzioni di dipendenza, che dà il via ad altre istanze di Visual Studio per costruirle. Il sistema funziona, ma ha i seguenti inconvenienti:
- le soluzioni per i progetti comuni sono spesso troppo grasso, che contiene alcuni progetti necessari per il prodotto che viene attualmente sviluppato e di solito molto di più che non sono necessari per la sviluppo di lavoro a portata di mano. Sono stati semplicemente accorpati in una sorta di soluzione catch-all che copre progetti che sono semplicemente imparentati. Ciò si traduce in tempi di compilazione estesi a causa della compilazione del codice non necessario.
- Nei casi in cui abbiamo tentato di risolvere le suddette soluzioni di grasso, spesso ci ritroviamo con una soluzione troppo sottile che contiene un solo progetto. Ognuno di questi richiede una configurazione aggiuntiva nel sistema di gestione delle dipendenze tra soluzioni. Anche questo può aumentare i tempi di costruzione man mano che vengono moltiplicate più istanze di Visual Studio.
Sto considerando di rivedere la politica per consentire a un progetto utilizzato in più prodotti consegnabili di essere contenuto in più di una soluzione. Potremmo eliminare la gestione delle dipendenze tra soluzioni e ridurre drasticamente il numero di soluzioni (fino a uno per prodotto). Sono preoccupato per la quantità di lavoro che questa riorganizzazione prenderà e se ne varrà la pena o no. Temo di non essere nemmeno in grado di rilevare i potenziali benefici finché il team non lavorerà per un po '. Prevedo anche un paio di potenziali problemi che sono le vere domande qui.
- Un numero elevato di progetti in un'unica soluzione pone problemi di stabilità in Visual Studio 2005 (la nostra attuale piattaforma di sviluppo)? Va meglio in VS 2008 o VS 2010?
- Se un progetto è contenuto in più di una soluzione, come è possibile gestire gli effetti su più soluzioni se le configurazioni del progetto devono essere modificate (come l'aggiunta di una nuova configurazione)?
A chiunque stia già lavorando in un ambiente con una soluzione per prodotto consegnabile, con componenti comuni come progetti contenuti in più soluzioni: Hai riscontrato qualche svantaggio significativo a tale configurazione?
Grazie per avermi fatto riflettere sulle implicazioni di $ (SolutionDir) nei progetti. Usiamo $ (SolutionName) nei nostri file di progetto e questo dovrebbe essere ripensato. – GBegen