2010-06-08 13 views
36

Mi línea de comandos de MSBuild es el siguiente:de error de línea de comandos de MSBuild - Silverlight 4 SDK no está instalado

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

El proyecto se basa bien en mi máquina de desarrollo en VS2010, pero no con el comando anterior. Estoy ejecutando Win 7 64 - Bit. Me aparece un error que dice que no tengo instalado el SDK de Silverlight 4, pero lo hago. I "He leído algunos mensajes que usted tiene que establecer la Plataforma = 86, pero en vano Aquí está el mensaje de error en su totalidad:.

 
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 

aprecio la ayuda de nadie Gracias

+1

¿Así que instaló el SDK de Silverlight 4? – leppie

+0

Sí, esta es mi máquina de desarrollo. Tengo Visual Studio 2010 y Silverlight Tools for 2010, que incluye el SDK. También veo los archivos SDK en este directorio: C: \ Archivos de programa (x86) \ Microsoft SDKs \ Silverlight \ v4.0. – Ned

+3

Pude obtener una compilación exitosa en mi máquina de desarrollo Win7 de 64 bits ejecutando MSBuild desde el directorio c: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 en lugar de hacerlo desde c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319. Sin embargo, sigo recibiendo el mismo error en mi servidor de compilación, que es Windows Server 2008 de 64 bits que ejecuta MSBuild desde este directorio. – Ned

Respuesta

2

he tenido este problema.. en la edición Windows 7 Ultimate de 64 bits cuando intenté configurar el Windows Phone SDK. No funcionó ninguna combinación de instalación/reparación de SDK/Toolkit, así que decidí investigar un poco más.

Al colocar un número de <Message /> tareas de compilación en mi archivo Microsoft.Silverlight.Common.targets, descubrí que no tenía entrada de registro en Software \ Microsoft \ Silverl ight \ 4.0. Esto fue cierto tanto para la sección de 32 bits como para la sección Wow6432Node.

Por lo tanto, las salidas de un par de los tipos de generación que descubren donde se almacenan los marcos regresaban espacios en blanco, posteriormente, en su defecto una serie de otros objetivos en la línea. Específicamente, las propiedades _FullFrameworkReferenceAssemblyPaths y TargetFrameworkDirectory no se configuraron correctamente.

Aunque totalmente anatema para todas las recomendaciones, que elude el problema de codificar manualmente los valores en el archivo .targets, como así:

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

No es algo que estoy particularmente orgulloso, pero las necesidades si debe Voy a hacer algún progreso con el desarrollo. Espero que esto ayude a alguien más.

+0

Estoy configurando un nuevo proyecto en nuestro servidor de integración continua basado en Hudson. El proyecto tiene una dependencia del SDK de Silverlight 4 y me encontré con este error también. Nos gusta mantener nuestras compilaciones autónomas con todas las dependencias registradas en el control de código fuente para permitir múltiples versiones de dependencias sin conflictos. Instalar cosas en el servidor de compilación es una mala práctica. Su trabajo de investigación fue útil para diagnosticar cuál era el problema con el SDK de Silverlight. –

+2

Sería bueno si (a) indicara exactamente en el Registro que la clave faltante debe ser, (b) donde en el archivo Microsoft.Silverlight.Common.targets usted agregó el para forzar las rutas. –

23

Me di cuenta de esto - hay un ajuste en MSBuild donde se puede elegir el medio ambiente x64 o x86 para MSBuild (en la misma página donde se configuran las banderas de MSBuild) - conjunto a x86 y todo saldrá bien.

+0

Esto funciona, pero también tuve que desinstalar y volver a instalar el SDK de Silverlight 4. Muy frustrante. – thomasnguyencom

4

El puesto de inicio dice que usted tiene que fijar Plataforma de destino a X86, pero eso no es la solución para el servidor de compilación.

En el archivo de configuración de generación no es una opción para configurar la plataforma de MSBuild a X86. Puede encontrar esta configuración a través de: Proceso -> 3. Avanzado -> Plataforma MSBuild (por defecto configurada en automático)

El problema subyacente es que Silverlight no admite 64 bits.

He encontrado esta solución, que trabaja para mí, en: http://social.msdn.microsoft.com/Forums/en/msbuild/thread/20a742a1-b99c-4638-8590-9a9d6a95fb69

20

que he encontrado el mismo problema cuando se ejecuta: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe

Basta con ejecutar:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe

+0

Esto resolvió mi problema también. Gracias –

21

Si ha llegado aquí debido a un problema con las compilaciones que causan el error anterior (aunque haya instalado el SDK de Silverlight 4), entonces para lograr la misma solución, debe editar su plantilla de proceso de compilación:

Vaya a la pestaña "Proceso", expanda la sección "3.Advanced" y ubique la configuración del segundo de abajo ("MSBuild Platform") y configúrelo a X86, que le indicará al agente de construcción que use el x86 variante de MSBuild.

Esto resolvió mi problema junto con la respuesta de Paul Betts anterior.

+1

Tuve este problema con tfs y esto lo solucionó! Gracias – gigi

+1

Esta debería ser la respuesta aceptada – Jupaol

+0

Funciona con tfs2012 –

0

Si configurar build a X86 y reinstalar Silverlight SDK 4 no fue útil: Si está utilizando VS2013 en el servidor de compilación, compruebe si Windows Phone SDK está instalado. Tuve que ejecutar el instalador VS2013, hacer clic en el botón cambiar e instalar Windows Phone SDK.

O intente instalar Windows Phone SDK para poder construir soluciones de Windows Phone.

0

Tengo el mismo problema al utilizar TeamCity. Mi paso de compilación fue una acción de MSBuild que se configuró en x64. Una vez que lo cambié a x86 funcionó. :)

Cuestiones relacionadas