Gestione della versione del software multi-versione?

1

Ho un semplice progetto VS che fa riferimento a DLL che devono essere specifiche per una versione del software con cui sto integrando e ho bisogno di rilasciare il mio progetto per più versioni del software - 2015 & 2016.

Quindi ho bisogno di creare MyProject2015.DLL e MyProject2016.DLL - facciamo finta che ognuno debba fare riferimento a Application2015.DLL e Application2016.DLL per motivi di esempio. Voglio mantenere un'unica base di codice. Sto usando Team Foundation Sever 2015 per il controllo della versione. Come posso ottenere questo?

    
posta CodenameCain 03.10.2017 - 19:38
fonte

2 risposte

2

Con l'assistenza di un collega ho risolto questo problema utilizzando due progetti che facevano riferimento alle stesse classi ma che utilizzavano riferimenti diversi.

In primo luogo, ho rimosso il progetto dalla soluzione. Ho quindi copiato il file csproj e rinominato ciascuno con i numeri di versione:

  • mioProject 2015.csproj
  • mioProject 2016.csproj

Successivamente ho aggiunto ciascun progetto alla soluzione in VS. Mi piace mantenere una cartella con DLL di riferimento con il progetto in modo che siano archiviati in TFS e un altro sviluppatore abbia le versioni corrette a cui fa riferimento quando si estrae il progetto. Così ho creato una cartella v2015 e v2016 per i rispettivi progetti ponendo le DLL appropriate in ciascuna. Ho quindi rimosso i riferimenti esistenti nei progetti e li ho aggiunti nuovamente, indicando i file nelle cartelle di versione-ed. Albero del progetto risultante .

Ora ho ancora due configurazioni di build aggiuntive, una per ogni versione. Mi sono assicurato che ognuno di essi fosse mappato alle cartelle bin di versione (bin \ 2015 & bin \ 2016). Ho anche aggiunto un tag AssemblyName nei file csproj in modo che la mia DLL per ogni build abbia un nome che include il numero di versione. Infine, nel Build Configuration Manager, ho selezionato solo il progetto 2015 per la build 2015 e allo stesso modo per la build 2016. Ecco la sezione di configurazione dei file csproj .

Ora, quando apro una classe nel progetto 2015 e poi provo ad aprire la stessa classe nel progetto 2016, apre lo stesso file di classe nell'IDE.

    
risposta data 06.10.2017 - 17:25
fonte
0

Ho dovuto fare qualcosa di simile con build a 32 bit e 64 bit

Puoi configurare il tuo file di progetto per utilizzare diversi riferimenti basati sulla configurazione di build

link

Quindi puoi eseguire la build in build configuration X sul tuo build server per ottenere l'output corretto.

È fastidioso che tu debba costruire più di una volta per ottenere un output completo (nel mio caso un pacchetto nuget con entrambe le DLL) ma puoi mettere insieme catene di cose insieme in team city per fare in modo che tutto accada. Non sono sicuro di TFS

    
risposta data 04.10.2017 - 09:10
fonte

Leggi altre domande sui tag