La domanda è: alla fine - vorrei iniziare ponendo contesto:Memorizzare gli SDK di Windows nel controllo del codice sorgente?
Uno dei problemi che stiamo affrontando al lavoro quando si utilizza Visual Studio è quello di fare in modo che tutti nel team sta usando la stessa versione degli SDK.
Un problema tipico sarebbe quello di avere qualcuno usare un diverso Direct X SDK versione risultante in un diverso comportamento del codice, o qualcuno l'aggiornamento a uno SDK più recente della piattaforma/Windows al fine di utilizzare alcune nuove API e avere il codice non funziona sui computer degli altri programmatori se continuano a utilizzare la versione precedente.
Un modo in cui abbiamo risolto il problema per altri middleware è stato quello di inserire l'intero set di librerie, file, catene di strumenti, ecc. Nel nostro sistema di controllo del codice sorgente e utilizzare i nostri progetti in modo che nessuno deve installare qualsiasi cosa Siamo riusciti a farlo anche con la versione precedente di Direct X SDK, ma abbiamo sempre avuto problemi con Windows/Platform SDK a causa degli stretti collegamenti tra l'SDK e la toolchain.
Dal momento che ora abbiamo per supportare sia VS2010 e VS2012, e devono sostenere da Windows XP a Windows 8 obiettivi, dobbiamo sostenere v100, v110 e v110_xp set di strumenti.
Ciò significa che abbiamo bisogno di tutti i compilatori associati e gli SDK corrispondenti, sia sui nostri sistemi di sviluppo che sui sistemi di compilazione: questo sta diventando incredibilmente costoso da mantenere, specialmente considerando che gli aggiornamenti casuali di Windows e le versioni di framework .net tendono normalmente a rompersi msbuild.
Quindi la domanda è:
E 'possibile disporre di Visual Studio per utilizzare set di strumenti non installati e SDK e invece averlo utilizzare tutto ciò che è disponibile in qualche cartella fuori del normale VS posizioni di installazione?
Domanda bonus: se è fattibile, è possibile farlo senza dover cambiare alcun file di configurazione installato localmente sulla macchina - es .: Avere tutto ciò nella soluzione/progetto o fogli di proprietà - quindi se cambiamo la struttura sul sistema di controllo del codice sorgente non è necessario aggiornare ogni singola macchina?
Grazie :)
Garantire per il modo VM (build server). In alternativa, immagini di installazione fantasma. (IMO quello che stai descrivendo è, in un certo senso, il mondo UNIX, e purtroppo Microsoft non si adatta bene a quell'immagine) – sehe
Sì a entrambe le domande, tuttavia è più un trucco che un'operazione banale. È qualcosa che puoi configurare sulla macchina da costruire. In ogni caso dovresti diramarlo e farlo rotolare sul ramo dev quando è pronto per l'uso. – KMoraz
Sono d'accordo con @sehe dovresti provare a creare VM standard e costringere gli sviluppatori a utilizzare lo stesso ambiente. Questo è un processo rigoroso che tutti dovrebbero seguire a meno che qualcuno non voglia rompere la build e ferire qualcun altro. Se qualcuno deve utilizzare un SDK più recente, creare una nuova immagine VM per lui/lei e chiedere di effettuare il check-in su un ramo isolato. Una volta che è il momento giusto, tutti dovrebbero eseguire l'aggiornamento a quella nuova immagine VM. Se gestisci correttamente, non è necessario eseguire il check-in degli SDK per il controllo del codice sorgente, poiché non è questa la soluzione. –