web-dev-qa-db-fra.com

Erreur de ligne de commande MSBuild - Silverlight 4 SDK n'est pas installé.

Ma ligne de commande MSBuild est la suivante: 

msbuild e:\code\monProjet.csproj/p: Configuration = Débogage/p: OutputPath = bin/Débogage/p: Platform = x86/p: PlatformTarget = x86

Le projet s'appuie bien sur ma machine de développement sous VS2010, mais pas avec la commande ci-dessus. Je suis en cours d'exécution Win 7 64 bits. Je reçois une erreur indiquant que le SDK Silverlight 4 n'est pas installé, mais c'est le cas. J'ai "lu quelques articles que vous devez définir Platform = x86 mais en vain. Voici le message d'erreur complet:

 Microsoft (R) Build Engine version 4.0.30319.1 
 [Microsoft .NET Framework, Version 4.0.30319.1] 
 Copyright (C) Microsoft Corporation 2007. Tous droits réservés. ____.] 
 La construction a commencé 6/8/2010 16h03:38. 
 Projet "E:\code\tableaux de bord\MonProject2010\MonProject2010.Web\MonProject2010 
. Web. .csproj "sur le noeud 1 (cibles par défaut). 
 GenerateTargetFrameworkMonikerAttribute: 
 Saut de cible" GenerateTargetFrameworkMonikerAttribute "car tous les fichiers de sortie 
 sont à jour par rapport aux fichiers d'entrée . 
 CoreCompile: 
 Sauter la cible "CoreCompile" parce que tous les fichiers de sortie sont à jour avec une resp. 
 Ect aux fichiers d’entrée. 
 CopyFilesToOutputDirectory: 
 Copie du fichier de "obj\Debug\MyProject.Web.dll" dans "bin\Debug\MyProject.Web 
 .Dll". 
 MyProject2010.web -> E:\code\dashboards\MyProject2010\MyProject2010.Web 
\bin\Debug\MyProject.Web.dll 
 Copie du fichier à partir de "obj\Debug\MyProject.Web.p" db "vers" bin\Debug\MyProject.Web 
 .pdb ". 
 Projet" E:\code\tableaux de bord\MyProject2010\MyProject2010.Web\MyProject2010 
. web.csproj "(1) construit" E:\code\tableaux de bord\MonProject2010\MonProject20 
 10.Client\MonProject2010.Client.csproj "(2) sur le nœud 1 (GetXapOutputFile target (
 S)) . 
 C:\Program Files (x86)\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight 
. Common.targets (104,9): erreur: le SDK de Silverlight 4 est pas installé. [E:\cod 
 E\dashboards\MyProject2010\MyProject2010.Client\MyProject2010.Client.cspr 
 Oj] 
 Projet de construction terminé "E:\code\tableaux de bord\MyProject2010\MyProject2010.Clie 
 Nt\MyProject2010.Client.csproj "(Cible (s) GetXapOutputFile) - ECHEC. 
 
 Projet de construction terminé" E:\code\tableaux de bord\MyProject2010\MyProject2010.Web\
 MyProject2010.web.csproj "(cibles par défaut) - ECHEC. 
 
 
 Construire ECHEC. 
 
 "E:\code\tableaux de bord\MonProject2010\MonProject2010.Web\MonProject2010.web.csp 
 Roj" (cible par défaut) (1) -> 
 "E:\code\tableaux de bord\MonProject2010\MyProject2010.Client\MyProject2010.Clie 
 Nt.csproj "(cible GetXapOutputFile) (2) -> 
 (Cible GetFrameworkPaths) -> 
 C:\Program Files (x86)\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlig 
 Ht.Common.targets (104,9): erreur: le kit de développement logiciel Silverlight 4 n'est pas installé. [E:\c 
 Ode\dashboards\MyProject2010\MyProject2010.Client\MyProject2010.Client.cs 
 Proj] 
 
 0 Avertissement (s) 
 1 Erreur (s) 
 
 Temps écoulé 00: 00: 00.39 

J'apprécie l'aide de quiconque. Merci.

36
Ned

J'ai pensé que ceci - il existe un paramètre dans MSBuild où vous pouvez choisir un environnement x64 ou x86 pour MSBuild (dans la même page où vous définissez des indicateurs MSBuild) - définissez-le sur x86 et tout fonctionnera.

23
Paul Betts

Si vous êtes arrivé ici en raison d'un problème lié à tfs2010 builds, à l'origine de l'erreur ci-dessus (même si vous avez installé le kit de développement logiciel Silverlight 4 SDK), vous devez modifier votre modèle de processus de création pour obtenir le même correctif:

Allez dans l'onglet "Processus", développez la section "3.Avancé" et localisez le deuxième paramètre à partir du bas ("Plateforme MSBuild") et définissez-le sur X86, qui indiquera ensuite à l'agent de génération d'utiliser la variante x86 de MSBuild.

Cela a résolu mon problème en conjonction avec la réponse de Paul Betts ci-dessus.

21
The Senator

J'ai rencontré le même problème lors de l'exécution: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe 

Il suffit de lancer:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe

20
seldary

La publication initiale indique que vous devez définir Target Platform sur X86, mais ce n'est pas la solution pour le serveur de génération.

Dans votre fichier de configuration de construction, il existe une option permettant de définir MSBuild Platform sur X86. Vous pouvez trouver ce paramètre via: Processus -> 3.Avancé -> MSBuild Platform (défini par défaut sur auto)

Le problème sous-jacent est que Silverlight ne prend pas en charge la version 64 bits.

J'ai trouvé cette solution, qui fonctionne pour moi, sur: http://social.msdn.Microsoft.com/Forums/en/msbuild/thread/20a742a1-b99c-4638-8590-9a9d6a95fb69

4
Wesley

J'ai eu ce problème sur Windows 7 Ultimate 64bit edition en essayant de configurer le SDK Windows Phone 7. Aucune combinaison d'installations/réparations de SDK/Toolkit ne fonctionnait pour moi, j'ai donc décidé d'enquêter un peu plus loin.

En plaçant un certain nombre de tâches de génération <Message /> dans mon fichier Microsoft.Silverlight.Common.targets, j'ai découvert que je n'avais aucune entrée de registre dans Software\Microsoft\Silverlight\4.0. Cela était vrai pour la section 32 bits et la section Wow6432Node.

Ainsi, les sorties de deux des cibles de génération qui découvraient où les frameworks étaient stockés renvoyaient des blancs, ce qui a ensuite échoué pour un certain nombre d'autres cibles. Plus précisément, les propriétés _FullFrameworkReferenceAssemblyPaths et TargetFrameworkDirectory n'étaient pas définies correctement.

Bien que totalement anathème pour toutes les recommandations, j'ai contourné le problème en codant manuellement les valeurs dans le fichier .targets, comme suit:

<PropertyGroup>
    <_FullFrameworkReferenceAssemblyPaths>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0</_FullFrameworkReferenceAssemblyPaths>
    <TargetFrameworkDirectory>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone</TargetFrameworkDirectory>
</PropertyGroup>

Je ne suis pas particulièrement fier de cela, mais indispensable si je veux progresser dans le développement. J'espère que ça aidera quelqu'un d'autre.

2
Gary McLean Hall

J'ai eu le même problème en utilisant TeamCity. Mon étape de génération était une action MSBuild définie sur x64. Une fois que je l'ai changé en x86, cela a fonctionné. :)

0
C Johnson

Si configurer Build sur X86 et réinstaller Silverlight SDK 4 n'était pas utile: Si vous utilisez VS2013 sur le serveur de génération, vérifiez si le kit de développement logiciel Windows Phone est installé. Je devais lancer le programme d’installation de VS2013, cliquer sur le bouton Changer et installer Windows Phone SDK.

Ou essayez d'installer Windows Phone SDK pour pouvoir construire des solutions Windows Phone.

0
Ludwo