2012-10-17 17 views
80

È passato un po 'di tempo da quando ho configurato un server Build, quindi forse ho dimenticato qualcosa o forse .NET 4.5 è diverso da qualsiasi versione l'ho fatto l'ultima volta, ma qui è il mio problemaCostruire ASP.NET 4.5 senza Visual Studio su Build Server

Sto provando a configurare un server di build per monitorare un repository di controllo del codice sorgente. Ogni volta che qualcosa cambia, voglio che il server tiri le modifiche e costruisca il progetto. Se non ci sono errori, voglio distribuire il sito su un sito web in esecuzione sul server di build.

In passato, quando ho fatto questo, ho pensato di essere in grado di fare ciò avendo installato solo .NET, ma quando provo a creare questo progetto viene visualizzato un errore "C: \ Programmi \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebApplications \ Microsoft.WebApplication.targets "manca, e se vado a vedere posso vedere che manca. In effetti non ci sono file target di Visual Studio 11.

Dopo un sacco di riflessioni e grattacapi, sono uscito e ho ottenuto il "Windows 8/.NET 4.5 SDK" pensando che l'SDK di .NET 4.5 poteva installare i file di destinazione di cui avevo bisogno, ma non lo fece a meno che non installato sbagliato in qualche modo.

Quindi, cosa è necessario inserire sul server di generazione per poter creare il progetto. Io preferirei non dover installare la versione completa di Visual Studio 2012.

+0

Ho fatto qualche ricerca da quando ho postato questo. Fammi sapere se sto andando nella direzione sbagliata. Sembra che questo sia stato un problema anche con Visual Studio 2010 e sembra che la gente abbia risolto questo problema in alcuni modi. Uno era installare Visual Studio Team Explorer. L'ho provato, ma il mio server è Win 2008 r1 e VSTE2012 non è compatibile. L'altra soluzione che è un po 'spaventosa è quella di copiare i file di destinazione da un'altra macchina. questo mi ha fatto andare oltre, ma ora sto ricevendo degli errori che mancano i miei assembly di riferimento che suppongo siano legati al problema originale. C'è un altro modo? – Zack

+3

Sei sulla strada giusta, il modo più semplice per risolvere il problema è installare VS 2010 sul tuo server di build. Questo è un po 'uno strumento ottuso. Il secondo modo sarebbe quello di fare quello che stai facendo e ottenere gli obiettivi e le dipendenze associate da un'altra macchina e distribuire solo quei file sul server. Il pericolo con questo approccio è che un service pack di VS può cambiare i file che hai copiato e il tuo build server userà una versione obsoleta di quei target mentre i tuoi sviluppatori useranno le versioni aggiornate. –

+0

Intendi VS2012? Si. Controllerò, ma suppongo che non sia paragonabile a win server 2008 r1 dato che il team explorer 2012 non lo era, ma il mio doppio controllo. – Zack

risposta

34

Il mio problema era legato a installare il Windows Software Development Kit (SDK) for Windows 8 su un Windows 2008 Box. Se leggi ulteriori informazioni sulla pagina, visualizzerai la voce "Strumenti .NET Framework 4.5 SDK su Windows Vista e Windows Server 2008." Questo ti dice di:

  1. Eseguire Windows SDK per il programma di installazione di Windows 8 su un sistema operativo supportato (ad esempio, Windows 7 o Windows 8).
  2. Scegliere la seguente opzione nella schermata Specifica posizione: Scarica Windows SDK per l'installazione su un computer separato.
  3. Premere il pulsante Avanti.
  4. Rispondere alle domande sulla schermata Partecipa al programma Analisi utilizzo software (CEIP).
  5. Nella schermata successiva, selezionare la funzionalità Kit di sviluppo del software .NET Framework 4.5. Deseleziona tutte le altre funzioni che possono essere deselezionate.
  6. Scegliere il pulsante Download.
  7. Vai al percorso di download (specificato al punto 2) e trovare i seguenti .NET Framework 4.5 SDK file di installazione strumento: sdk_tools4.msi, sdk_tools4.cab
  8. È possibile copiare questi file su un Windows Vista o Windows 2008 Computer server all'interno dell'organizzazione. Questi file devono essere copiati nella stessa directory sul computer Windows Vista o Windows 2008 Server. Nota: non ridistribuire questi file all'esterno dell'organizzazione o come parte di altri programmi di installazione.
  9. Sul computer Windows Vista o Windows 2008 Server, rivedere i termini della licenza qui.
  10. Verificare se .NET Framework 4.5 è già installato nel computer. In caso contrario, scaricare e installare .NET Framework 4.5 da www.microsoft.com.
  11. Aprire un prompt dei comandi con privilegi di amministratore.
  12. Andare alla directory in cui sono stati copiati i file di installazione di SDK Tools di .NET Framework 4.5.
  13. Installare gli strumenti di .NET Framework 4.5 SDK utilizzando la riga di comando: Msiexec/i sdk_tools4.msi VSEXTUI = 1
+0

Grazie Swampy. Segnerò questa risposta come corretta, ma volevo solo menzionare un paio di cose. Non ho intenzione di testare questo, ma la tua risposta sembra che potrebbe funzionare. Invece stiamo solo aggiornando il server. In secondo luogo, sai se farlo in questo modo avrebbe permesso di aggiornare i componenti quando le patch e i service pack sono stati rilasciati? – Zack

+0

Ho seguito queste istruzioni con Server 2008 ma sfortunatamente sto ancora vedendo file .nlp e mscorlib è incluso nelle distribuzioni usando la distribuzione web – Nathan

+1

Grazie mille. Sto usando Jenkins e ho appena aggiornato il mio progetto per utilizzare .NET 4.5. Quando spingo il mio lavoro su Jenkins non si lamenta della versione errata, si lamenta dell'assenza di assembly System.Runtime. Preferisco questa soluzione sulla copia manuale dei file perché questa soluzione è più facile da automatizzare. –

25

Da msdn:

Windows SDK non più fornito con un ambiente completo della riga di comando costruire. È necessario installare separatamente un compilatore e un ambiente di compilazione. Se è necessario un ambiente di sviluppo completo che include compilatori e un ambiente di sviluppo, è possibile scaricare Visual Studio 2012 Express, che include i componenti appropriati di Windows SDK.

Per risolvere questo problema, ho dovuto copiare la cartella C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5 dalla mia macchina di sviluppo (che dispone di Visual Studio 2012 per la via) sulle agenti di compilazione. Dopo questa operazione, Team City non ha segnalato altri errori e mscorlib.dll non è stato restituito nella cartella bin.

+0

grazie, questo lo ha risolto per me, senza la necessità di scaricare il sdk. (o uno dei passaggi nella risposta accettata) – Cohen

+0

Impressionante, ho salvato la mia giornata! – Magnus

+1

Questo dovrebbe essere sicuramente la risposta accettata Molto più facile dato che hai sicuramente già una macchina con i gruppi ref –

81

Per eseguire sul server CI senza Visual Studio, è sufficiente copiare alcune cartelle da una macchina di sviluppo nella stessa posizione sul server CI. Non è necessario installare l'SDK.

VS 2015:

  • C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ Web
  • C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v14.0 \ applicazioni web

VS 2013:

  • C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ Web
  • C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v12.0 \ applicazioni web

VS 2012:

  • C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ Web
  • C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebApplications

VS 2010:

  • C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web
  • C: \ Program Files (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ applicazioni web

.NET 4.6:

  • C: \ Pr ogram Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.6

.NET 4.5.2:

  • C: \ Program Files (x86) \ Riferimento Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.5.2

.NET 4.5.1:

  • C: \ Program Files (x86) \ Riferimento Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.5.1

.NET 4.5:

  • C: \ Program Files (x86) \ Riferimento Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.5

.NET 4.0.1:

  • C: \ Program Files (x86) \ Riferimento Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0.1

NET 4.0:

  • C: \ Program Files (x86) \ Riferimento Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0

O, come Matt suggested, li si potrebbe copiare in una sottodirectory del progetto e modificare la posizione <MSBuildExtensionsPath32> nel file MSBuild (in genere .csproj o .vbproj).

Una volta fatto, il progetto verrà compilato.

È inoltre necessario impostare la variabile di ambiente VisualStudioVersion in modo esplicito sulla versione di Visual Studio (10.0 per VS2010, 11.0 per VS2012, 12.0 per VS2013, 14.0 per VS2015) che si sta utilizzando per verificare che sia impostato correttamente nella configurazione.

+6

questo ha risolto il problema per noi +1. Venendo da Maven/Java questo è pazzesco. – NimChimpsky

+0

Gli assembly di riferimento non sono installati con .NET Framework? Obiettivi di MSBuild no. Non sono sicuro Assemblee di riferimento, penso che sì. – Kiquenet

+0

La copia di C: \ Programmi (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 dal computer dello sviluppatore alla stessa cartella sul computer di costruzione ha funzionato per me dopo che Team City non era in grado di compilare la soluzione .NET 4.5, tuttavia .NET. La soluzione 4.0 in precedenza è stata compilata. –

4

Risolve questo problema con Visual Studio Agent.

Si può provare a installare Visual Studio Agents 2012.

http://www.microsoft.com/en-us/download/details.aspx?id=38186

+0

Non funziona per VS2013. Ho installato Agent and Controller ma C: \ Programmi (x86) \ MSBuild \ Microsoft \ VisualStudio \ v12.0 non è stato creato – Guillaume

+1

[Agenti per Visual Studio 2013] (http://www.microsoft.com/en-gb /download/details.aspx?id=40750) sono ovviamente disponibili - per chi legge questa risposta con VS 2013 piuttosto che VS 2012 in mente. – J0e3gan

+2

Funziona davvero! È sufficiente installare Visual Studio 2013 Shell (Isolato) (x86) E di Visual Studio 2013 Shell (Integrato) (x86) – Andrii

12

Microsoft Build Tools 2013 aiuterà in questo caso, come la sua pagina di download descrive:

Se non si dispone di Visual Studio installato Sul tuo computer, puoi utilizzare Build Tools 2013 per creare applicazioni gestite. Anche i compilatori Visual Basic e C# sono inclusi in questo download. (Nelle precedenti versioni , questi strumenti sono stati inclusi nella quadro autonomo NET.)

+1

Un'altra spiegazione potrebbe aiutare i colleghi programmatori a capire come funziona il link di riferimento. In futuro il link di riferimento potrebbe non esistere più. – Daenarys

+0

Microsoft Build Tools 2013 per VS 2013 e ** anche VS 2012 **? Ad ogni modo, è meglio installare ** Microsoft Build Tools ** o ** Visual Studio Agents 2012 ** http://stackoverflow.com/a/20373256/206730? – Kiquenet

7

mio settore. Mi piace prendere un approccio minimalista a ciò che è installato sulle nostre macchine Win 7 build. Tuttavia, non ci piace solo copiare e incollare file/cartelle a causa di potenziali problemi alla chiave del Registro di sistema.Invece di installare VS 2013, ho installato i seguenti componenti molto più piccoli e gratuiti. Ora il team di sviluppo può creare con successo le app Web VS 2013.

+0

Grazie mille. Mi sono sempre chiesto come ottenere 'Microsoft.WebApplication.targets' e non ho mai saputo di quella Shell isolata! –

Problemi correlati