Problèmes de build .NET 4.0 sur le serveur CI

99

Quelqu'un parvient-il à faire compiler des applications .NET 4.0 sur un serveur CI sans installer Visual Studio 2010 sur un serveur CI?

Aucun SDK n'existe pour .NET 4.0. Avoir installé .NET 4.0 sur CI Server. Msbuild.exe fonctionne pour les projets simples et donne l'avertissement suivant:

(Cible GetReferenceAssemblyPaths) -> C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (847,9): avertissement MSB3644: Les assemblys de référence pour le framework ".NETFramework, Version = v4.0" n'ont pas été trouvés. Pour résoudre ce problème, installez le SDK ou le pack de ciblage pour cette version du framework ou recibler votre application vers une version du framework pour laquelle vous avez installé le SDK ou le pack de ciblage. Notez que les assemblys seront résolus à partir du Global Assembly Cache (GAC) et seront utilisés à la place des assemblys de référence. Par conséquent, votre assemblage peut ne pas être correctement ciblé pour le cadre que vous souhaitez.

DMcKenna
la source
1
Comment puis-je en faire une erreur fatale plutôt qu'un avertissement? Il est caché dans notre journal de construction et à la place, il échoue plus bas avec un message cryptique à propos de mscorlib.dll
Colonel Panic
J'ai écrit un article détaillé à ce sujet ici: neelbhatt.com/2018/05/04/…
Neel

Réponses:

128

Vous n'avez plus besoin d'installer VS, vous pouvez installer le "SDK Microsoft Windows pour Windows 7 et .NET Framework 4" maintenant.

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

JeremyWeir
la source
44
L'installation par défaut est de 1,7 Go, mais la plupart de ces fichiers sont inutiles. Si vous décochez tout sauf Développement .NET> Assemblages Intellisense et de référence, vous obtiendrez toujours le pack de ciblage .NET 4 dont vous avez besoin (environ 450 Mo).
Luke Sampson
1
Vous pouvez également vérifier .NET Development> Tools, car cela apportera plusieurs utilitaires tels que sn.exe qui sont utiles pour traiter les assemblys signés.
Mykro
8
Il existe également un programme d'installation Web, vous n'avez donc qu'à télécharger les pièces nécessaires. Peut être téléchargé ici: microsoft.com/download/en/confirmation.aspx?id=8279
Rasmus
2
Bien que cela soit nommé "pour Windows 7", il convient de noter les systèmes d'exploitation pris en charge: Windows 7, Windows Server 2003 R2 Standard Edition (32 bits x86), Windows Server 2003 R2 Standard x64 Edition, Windows Server 2008, Windows Server 2008 R2 , Windows Vista, Windows XP Service Pack 3
Aligma
2
Cette réponse m'aide. J'ai eu un problème différent lors de l'installation de sdk 7.1 qui a été résolu comme indiqué ici mathworks.com/matlabcentral/answers/95039
ari
23

SDK pour .NET 4.5 disponible ici . Le programme d'installation fonctionne bien avec un proxy avec une autorisation de base. Systèmes d'exploitation pris en charge: Windows 8, Windows Server 2012, Windows 7, Windows Server 2008 R2

PS Ma réponse ressemble plus à un commentaire à la réponse de Jérémie , mais je n'ai pas assez de réputation pour commenter les réponses.

resnyanskiy
la source
1
À partir de la page référencée: "Le SDK Windows n'est plus livré avec un environnement de génération de ligne de commande complet. Le SDK Windows nécessite désormais un compilateur et un environnement de génération à installer séparément." Je suppose donc que ce n'est pas suffisant pour exécuter un serveur de build.
Chris du
1
Cela a réglé le problème pour moi. Il vous suffit de sélectionner l'option «Kit de développement logiciel .NET Framework 4.5» qui ne nécessite que 62,3 Mo et fonctionne correctement sur un serveur TFS Build 2013 installé sur le déploiement de Windows Server 2012 R2 pour SharePoint Apps. Pas besoin de remplacer le paramètre FrameworkPathOverride.
Koen Zomers
10

autre alternative: sans installer le SDK Net 4.0 ou vs 2010

Copiez le dossier des assemblys de référence de votre machine de développement vers le serveur de génération (190 Mo).

utilisez l'option msbuild -p: FrameworkPathOverride pour pointer vers le dossier des assemblys de référence

l'emplacement des assemblages de référence:

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

trouvé ceci à partir de:

Assemblys de référence de serveur de build .NET 4.0 avertissements MSB3644

Si vous obtenez cette erreur: "Microsoft.WebApplication.targets est introuvable" - copiez simplement la cible depuis la machine de développement https://stackoverflow.com/a/5344246/423356

si mvc3 n'est pas installé dans le serveur de construction; «ajouter des assemblys déployables» au projet mvc http://haacked.com/archive/2011/05/25/bin-deploying-asp-net-mvc-3.aspx

Si vous rencontrez une erreur lors de la construction du projet MSTest sans le sdk ou le studio visuel installé; Il y a plusieurs articles de blog à ce sujet, dommage que la solution soit trop complexe pour moi. J'utilise NUnit au lieu de MSTest

cerf-volant
la source
Étant donné que mon serveur 2012 ne m'a pas laissé installer .Net 4 car le programme d'installation a dit qu'il existe une version supérieure. J'ai fait ce que @kite a dit et copié à partir d'un PC que j'avais où VS 2012 était installé. Cela a résolu mes problèmes.
chdev77
0

Cette page répertorie les SDK .NET pour chaque version de Visual Studio. http://blogs.msdn.com/b/dotnet/p/dotnet_sdks.aspx

Pour un téléchargement plus petit, choisissez le «pack développeur» ou le «pack de ciblage» plutôt que le SDK Windows complet.

Colonel Panic
la source
Cela peut être une astuce générale pour installer un pack de développement ou un pack de ciblage, mais spécifique à .NET Framework 4.0 (cette question concerne tout), il n'y a pas de tel pack et le SDK Windows est inévitable.
Lex Li