Ho sempre utilizzato Visual Studio integrato nel supporto della GUI per configurare i miei progetti, spesso usando i fogli delle proprietà in modo che diversi progetti utilizzino un set comune.Utilizzo efficace delle proprietà del progetto Visual Studio per più progetti e configurazioni
Uno dei miei problemi principali è la gestione di più progetti, configurazioni e piattaforme. Se fai semplicemente tutto con la GUI principale (fai clic con il tasto destro del mouse sul progetto -> Proprietà) diventa rapidamente un disastro, difficile da mantenere e soggetto a bug (come non riuscire a definire correttamente una macro, o usare la libreria runtime sbagliata, ecc.). Affrontare il fatto che diverse persone mettono lì le librerie di dipendenza in luoghi diversi (ad esempio, tutte le mie vivono in "C: \ Libs \ [C, C++] \ [lib-name] \") e quindi gestiscono spesso le diverse versioni di quelle librerie anche in modo diverso (rilascio, debug, x86, x64, ecc.) è anche un grosso problema poiché complica enormemente il tempo di installarlo su un nuovo sistema, e quindi ci sono problemi con il controllo della versione e tenere separati i percorsi di ognuno.
Le schede delle proprietà rendono questo un po 'meglio, ma non posso avere un foglio con impostazioni separate per diverse configurazioni e piattaforme (le caselle a discesa di un grigio), con conseguente me avendo molti fogli che se ereditato nell'ordine corretto fai quello che voglio ("x86", "x64", "debug", "release", "common", "directories" (si occupa del problema delle dipendenze precedentemente citato definendo macro utente come BoostX86LibDir), ecc. d nell'ordine sbagliato (ad esempio "comune" prima di "x64" e "debug") portano a problemi come provare a collegare una versione errata della libreria, o nominare erroneamente l'output ...
Quello che voglio è un modo di trattare tutte queste dipendenze sparse e impostare un insieme di "regole" che sono utilizzate da tutti i miei progetti nella soluzione, come nominare una libreria di output come "mylib- [vc90, vc100] - [x86, x64] [- d] .lib ", senza dover fare tutto questo per ogni singolo progetto, configurazione e combinazione di piattaforme, e quindi tenerli tutti correttamente sincronizzati.
Sono consapevole di passare a sistemi completamente diversi come CMake che creano i file necessari, tuttavia questo complica le cose altrove rendendolo così anche semplici attività come l'aggiunta di un nuovo file al progetto, quindi richiede ulteriori cambiamenti altrove, che è Non sono affatto soddisfatto di entrambi, a meno che non ci sia un po 'di integrazione con VS2010 che possa tenere traccia di questo tipo di cambiamenti.
Mi sento male: abbiamo oltre 600 vcproj nel nostro prodotto al lavoro. :( –