Problemi di compilazione di .NET 4.0 sul server CI


99

Qualcuno riesce a far compilare le applicazioni .NET 4.0 su un server CI senza installare Visual Studio 2010 su un server CI?

Non esiste alcun SDK per .NET 4.0. Ho installato .NET 4.0 su CI Server. Msbuild.exe funziona per progetti semplici e fornisce il seguente avviso:

(GetReferenceAssemblyPaths target) -> C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (847,9): avviso MSB3644: gli assembly di riferimento per il framework ".NETFramework, Version = v4.0" non sono stati trovati. Per risolvere questo problema, installa l'SDK o il Targeting Pack per questa versione del framework oppure esegui il retargeting dell'applicazione su una versione del framework per cui hai installato l'SDK o il Targeting Pack. Si noti che gli assembly verranno risolti dalla Global Assembly Cache (GAC) e verranno usati al posto degli assembly di riferimento. Pertanto, l'assembly potrebbe non essere correttamente mirato al framework desiderato.


1
Come posso rendere questo un errore fatale piuttosto che un avviso? È nascosto nel nostro registro di build e invece non riesce più in basso con un messaggio criptico su mscorlib.dll
Colonel Panic

Ho scritto un post dettagliato su questo qui: neelbhatt.com/2018/05/04/…
Neel

Risposte:


128

Non è più necessario installare VS, ora è possibile installare "Microsoft Windows SDK per Windows 7 e .NET Framework 4".

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=6b6c21d2-2006-4afa-9702-529fa782d63b


44
L'installazione predefinita è 1,7 GB, ma la maggior parte di questi file non è necessaria. Se deselezioni tutto tranne Sviluppo .NET> Intellisense e Assembly di riferimento che ti forniranno comunque il pacchetto di targeting .NET 4 di cui hai bisogno (è circa 450 MB).
Luke Sampson

1
Potresti anche voler controllare Sviluppo .NET> Strumenti in quanto ciò porterà diverse utilità come sn.exe che sono utili per gestire gli assembly firmati.
Mykro

8
C'è anche un programma di installazione web, quindi devi solo scaricare le parti necessarie. Può essere scaricato qui: microsoft.com/download/en/confirmation.aspx?id=8279
Rasmus

2
Sebbene sia denominato "per Windows 7", vale la pena notare i sistemi operativi supportati: Windows 7, Windows Server 2003 R2 Standard Edition (32 bit x86), Windows Server 2003 R2 Standard x64 Edition, Windows Server 2008, Windows Server 2008 R2 , Windows Vista, Windows XP Service Pack 3
Aligma

2
Quella risposta mi aiuta. Ho avuto un problema diverso durante l'installazione di sdk 7.1 che è stato risolto come mostrato qui mathworks.com/matlabcentral/answers/95039
ari

23

SDK per .NET 4.5 disponibile qui . Il programma di installazione funziona bene con proxy con autorizzazione di base. Sistemi operativi supportati: Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2

PS La mia risposta è più simile a un commento alla risposta di Jeremy , ma non ho abbastanza reputazione per commentare le risposte.


1
Dalla pagina di riferimento: "Windows SDK non viene più fornito con un ambiente di compilazione completo della riga di comando. Windows SDK richiede ora un compilatore e un ambiente di compilazione da installare separatamente". Quindi presumo che questo non sia sufficiente per eseguire un server di compilazione.
Chris

1
Questo ha risolto il problema per me. Devi solo selezionare l'opzione ".NET Framework 4.5 Software Development Kit" che richiede solo 62,3 MB e funziona bene su un server TFS Build 2013 installato su Windows Server 2012 R2 per la distribuzione di SharePoint Apps. Non è necessario sovrascrivere il parametro FrameworkPathOverride.
Koen Zomers

10

altra alternativa: senza installare Net 4.0 SDK o vs 2010

Copia la cartella degli assembly di riferimento dalla tua macchina di sviluppo al server di compilazione (190 MB).

utilizzare l'opzione msbuild -p: FrameworkPathOverride per puntare alla cartella degli assembly di riferimento

la posizione degli assembly di riferimento:

C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 o C: \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0

trovato da:

Avvertenze sugli assembly di riferimento del server di compilazione .NET 4.0 MSB3644

Se ricevi questo errore: "Microsoft.WebApplication.targets non è stato trovato", copia semplicemente il target dalla macchina di sviluppo https://stackoverflow.com/a/5344246/423356

se mvc3 non è installato nel build server; "aggiungi assembly distribuibili" al progetto mvc http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

In caso di errore durante la creazione del progetto MSTest senza sdk o visual studio installati; Ci sono diversi post sul blog a riguardo, peccato che la soluzione sia troppo complessa per me. Uso NUnit invece di MSTest


Dal momento che il mio server del 2012 non mi ha permesso di installare .Net 4 perché il programma di installazione ha detto che esiste una versione superiore. Ho fatto quello che ha detto @kite e ho copiato da un PC che avevo quando VS 2012 è stato installato. Questo ha risolto i miei problemi.
chdev77

0

Questa pagina elenca .NET SDK per ogni versione di Visual Studio. http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx

Per un download più piccolo, scegli il "pacchetto per sviluppatori" o il "pacchetto di targeting" anziché l'SDK completo di Windows.


Può essere un suggerimento generale per installare il pacchetto per sviluppatori o il pacchetto di targeting, ma specifico per .NET Framework 4.0 (questa domanda riguarda tutto) non esiste un tale pacchetto e Windows SDK è inevitabile.
Lex Li
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.