2010-06-08 3 views
36

La mia linea di comando MSBuild è la seguente:errore della riga di comando MSBuild - Silverlight 4 SDK non è installato

msbuild e:\code\myProject.csproj /p:Configuration=Debug /p:OutputPath=bin/Debug /p:Platform=x86 /p:PlatformTarget=x86

Il progetto si basa bene sulla mia macchina di sviluppo in VS2010, ma non con il comando precedente. Sto facendo funzionare Win 7 64 - Bit. Ricevo un errore che dice che non ho installato l'SDK Silverlight 4, ma lo faccio. I "ho letto alcuni post che si deve impostare la piattaforma = 86 ma inutilmente Ecco il messaggio di errore per intero:.

 
Microsoft (R) Build Engine Version 4.0.30319.1 
[Microsoft .NET Framework, Version 4.0.30319.1] 
Copyright (C) Microsoft Corporation 2007. All rights reserved. 

Build started 6/8/2010 4:03:38 PM. 
Project "E:\code\dashboards\MyProject2010\MyProject2010.Web\MyProject2010 
.web.csproj" on node 1 (default targets). 
GenerateTargetFrameworkMonikerAttribute: 
Skipping target "GenerateTargetFrameworkMonikerAttribute" because all output fi 
les are up-to-date with respect to the input files. 
CoreCompile: 
Skipping target "CoreCompile" because all output files are up-to-date with resp 
ect to the input files. 
CopyFilesToOutputDirectory: 
    Copying file from "obj\Debug\MyProject.Web.dll" to "bin\Debug\MyProject.Web 
    .dll". 
    MyProject2010.web -> E:\code\dashboards\MyProject2010\MyProject2010.Web 
    \bin\Debug\MyProject.Web.dll 
    Copying file from "obj\Debug\MyProject.Web.pdb" to "bin\Debug\MyProject.Web 
    .pdb". 
Project "E:\code\dashboards\MyProject2010\MyProject2010.Web\MyProject2010 
.web.csproj" (1) is building "E:\code\dashboards\MyProject2010\MyProject20 
10.Client\MyProject2010.Client.csproj" (2) on node 1 (GetXapOutputFile target(
s)). 
C:\Program Files (x86)\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight 
.Common.targets(104,9): error : The Silverlight 4 SDK is not installed. [E:\cod 
e\dashboards\MyProject2010\MyProject2010.Client\MyProject2010.Client.cspr 
oj] 
Done Building Project "E:\code\dashboards\MyProject2010\MyProject2010.Clie 
nt\MyProject2010.Client.csproj" (GetXapOutputFile target(s)) -- FAILED. 

Done Building Project "E:\code\dashboards\MyProject2010\MyProject2010.Web\ 
MyProject2010.web.csproj" (default targets) -- FAILED. 


Build FAILED. 

"E:\code\dashboards\MyProject2010\MyProject2010.Web\MyProject2010.web.csp 
roj" (default target) (1) -> 
"E:\code\dashboards\MyProject2010\MyProject2010.Client\MyProject2010.Clie 
nt.csproj" (GetXapOutputFile target) (2) -> 
(GetFrameworkPaths target) -> 
    C:\Program Files (x86)\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlig 
ht.Common.targets(104,9): error : The Silverlight 4 SDK is not installed. [E:\c 
ode\dashboards\MyProject2010\MyProject2010.Client\MyProject2010.Client.cs 
proj] 

    0 Warning(s) 
    1 Error(s) 

Time Elapsed 00:00:00.39 

apprezzo l'aiuto di nessuno Grazie

+1

Così hai installato il Silverlight 4 SDK? – leppie

+0

Sì, questa è la mia macchina di sviluppo. Ho Visual Studio 2010 e Silverlight Tools per il 2010 che include l'SDK. Vedo anche i file SDK in questa directory: C: \ Programmi (x86) \ Microsoft SDK \ Silverlight \ v4.0. – Ned

+3

Sono stato in grado di ottenere una build di successo sul mio computer di sviluppo Win7 a 64 bit eseguendo MSBuild dalla directory c: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 anziché da c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319. Tuttavia, sto ancora ricevendo lo stesso errore sul mio build server che è Windows Server 2008 a 64 bit che esegue MSBuild da questa directory. – Ned

risposta

2

ho avuto questo problema.. su Windows 7 Ultimate 64bit edition durante il tentativo di installare Windows 7 Phone SDK. Nessuna combinazione di installazione/riparazione di SDK/Toolkit ha funzionato per me quindi ho deciso di approfondire ulteriormente

Inserendo un numero di <Message /> creare attività nel mio file Microsoft.Silverlight.Common.targets, ho scoperto che non avevo alcuna voce di registro in Software \ Microsoft \ Silverl ight \ 4.0. Questo era vero sia per la sezione a 32 bit che per la sezione Wow6432Node.

Così, le uscite di un paio di obiettivi di build che scoprono in cui sono memorizzati i quadri stavano tornando spazi vuoti, poi in mancanza di una serie di altri obiettivi su tutta la linea. In particolare, le proprietà _FullFrameworkReferenceAssemblyPaths e TargetFrameworkDirectory non venivano impostate correttamente.

Anche se totalmente anatema per tutte le raccomandazioni, ho aggirato il problema hardcoding manualmente i valori nel file .targets, come in tal modo:

<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> 

Non è qualcosa che io sono particolarmente orgoglioso, ma ha bisogno di non perdere se io farò progressi con lo sviluppo Spero che questo aiuti qualcun'altro.

+0

Sto configurando un nuovo progetto sul nostro server di integrazione continua basato su Hudson. Il progetto ha una dipendenza dall'SDK di Silverlight 4 e ho riscontrato anche questo errore. Ci piace mantenere le nostre build autonome con tutte le dipendenze controllate nel controllo del codice sorgente per consentire più versioni di dipendenze senza conflitti. L'installazione di cose sul server di build è una cattiva pratica. Il tuo lavoro di indagine è stato utile per diagnosticare quale fosse il problema con Silverlight SDK. –

+2

Sarebbe bello se (a) indicaste esattamente nel Registro la chiave mancante dovrebbe essere, (b) dove nel file Microsoft.Silverlight.Common.targets avete aggiunto il per forzare i percorsi. –

23

ho capito questo - c'è un ambiente in MSBuild dove è possibile scegliere l'ambiente x64 o x86 per MSBuild (nella stessa pagina in cui si imposta MSBuild bandiere) - insieme a x86 e tutto funzionerà.

+0

Funziona, ma ho anche dovuto disinstallare e reinstallare l'SDK Silverlight 4. Molto frustrante. – thomasnguyencom

4

Il post di avvio dice che si deve impostare Piattaforma di destinazione per X86, ma che non è la soluzione per il server di build.

nel file di configurazione di build è disponibile un'opzione per impostare MSBuild Platform per X86. È possibile trovare questa impostazione tramite: Processo -> 3. Avanzato -> Piattaforma MSBuild (predefinito su Auto)

Il problema di sottostringa è che Silverlight non supporta 64 bit.

ho trovato questa soluzione, che funziona per me, su: http://social.msdn.microsoft.com/Forums/en/msbuild/thread/20a742a1-b99c-4638-8590-9a9d6a95fb69

20

che ho incontrato lo stesso problema quando si esegue: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe

È sufficiente eseguire:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe

+0

Questo ha risolto anche il mio problema. Grazie –

21

Se siete arrivati qui a causa di un problema con build che causano l'errore sopra riportato (anche se è stato installato l'SDK di Silverlight 4), quindi per ottenere la stessa correzione è necessario modificare il modello di processo di creazione:

Passare alla scheda "Processo", espandere la sezione "3.Advanced" e individuare il secondo dall'impostazione inferiore ("Piattaforma MSBuild") e impostarlo su X86 che istruirà quindi l'agente di build a utilizzare x86 variante di MSBuild.

Questo ha risolto il mio problema in combinazione con la risposta di Paul Betts sopra.

+1

Ho avuto questo problema con tfs e questo è stato risolto! Grazie – gigi

+1

Questa dovrebbe essere la risposta accettata – Jupaol

+0

Funziona con tfs2012 –

0

Se l'impostazione di compilazione su X86 e la reinstallazione di Silverlight SDK 4 non è stata utile: Se si utilizza VS2013 sul server di generazione, controllare se è installato Windows Phone SDK. Ho dovuto andare a eseguire il programma di installazione VS2013, fare clic sul pulsante Cambia e installare Windows Phone SDK.

Oppure provare ad installare windows phone sdk per poter costruire soluzioni per windows phone.

0

Ho avuto lo stesso problema con TeamCity. Il mio passo di costruzione era un'azione MSBuild che era impostata su x64. Una volta cambiato in x86, ha funzionato. :)