Quindi il nostro team ha prodotti attualmente in esecuzione su Visual Studio 2013. Ora vogliamo passare a Visual Studio 2017. Così mi è stato assegnato l'incarico di rendere la transizione a Visual Studio 2017 il più semplice possibile.
Ecco l'elenco delle sfide che questa attività presenta
- Usiamo git come nostro sistema di versioning e abbiamo tutto il nostro codice aggiornato su un ramo master (inclusi i file .vcxproj). Pertanto l'aggiornamento cambierebbe questi file. Se questi file vengono modificati, il resto del mio team che mantiene e aggiunge costantemente nuove funzionalità non può funzionare perché sta lavorando su VS 2013
- Abbiamo un altro repository per le nostre librerie 3rdParty, che devono essere aggiornate anche per corrispondere agli strumenti di VS 2017. Quindi, se aggiorno anche le librerie 3rdParty, sarebbe lo stesso problema del primo
Domanda:
Ho un'opzione praticabile a cui riesco a pensare. Ma, sto cercando di capire se qualcuno ha un'idea migliore.
Ecco cosa sto pensando
- Crea una cartella 3rdParty separata con tutte le librerie 3rdParty aggiornate al suo interno
- Una volta trasferiti i prodotti nel 2017 prenderò tutti i file
*.vcxproj
e*.sln
facendoli apparire tutti come*2017.vcxproj
e*2017.sln
file e li spingerai a diventare master
In questo modo quando è il momento di trasferire tutti in VS 2017. Tutto ciò che devono fare è scaricare la nuova copia di 3rdPartyResource e fare clic su *2017.sln
.
Il motivo per cui sto cercando un'idea migliore è perché, non sono sicuro se questa idea funzionerà e potrò testare solo se funziona dopo che ho messo tutto il lavoro per farlo. Speravo che ci fossero dei passi più graduali che potessi fare per assicurarmi di non rompere o rallentare nessuno lungo la strada. Qualcuno ha un'idea migliore?
Se aiuta qui è come è la nostra struttura software:
├───3rdPartyResource
│ ├───3rdPartyLib1
│ └───3rdPartyLib2
└───Software
├───DevelopmentTools
│ DevelopmentProject1.v
│ DevelopmentProject2.v
│
├───Libraries
│ Library1.vcxproj
│ Library2.vcxproj
│
└───Products
Product1.vcxproj
Product2.vcxproj
Ulteriori informazioni La nostra base di codice è in C ++ e usiamo rigorosamente solo librerie statiche (non l'ho deciso). Questo è esattamente come fa il nostro team.