My MSBuild command line is as follows:
msbuild e:\code\myProject.csproj /p:Configuration=Debug /p:OutputPath=bin/Debug /p:Platform=x86 /p:PlatformTarget=x86
The project builds fine on my development machine in VS2010 but not with the command above. I am running Win 7 64 - Bit. I'm getting an error that says I don't have the Silverlight 4 SDK installed but I do. I"ve read some posts that you have to set the Platform=x86 but to no avail. Here is the error message in full:
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
I appreciate anyone's help. Thanks.
The start post says that you have to set Target Platform to X86, but that is not the solution for the build server.
In your build configuration file there is an option to set MSBuild Platform to X86. You can find this setting via: Process -> 3.Advanced -> MSBuild Platform (default set to auto)
The underlaying problem is that Silverlight doesn't support 64 bit.
I found this solution, which works for me, on: http://social.msdn.microsoft.com/Forums/en/msbuild/thread/20a742a1-b99c-4638-8590-9a9d6a95fb69
If you have arrived here due to an issue with tfs2010 builds causing the above error (even though you have installed the Silverlight 4 SDK), then in order to achieve the same fix you must edit your Build Process template:
Go to the the "Process" tab, expand the "3.Advanced" section and locate the second from bottom setting ("MSBuild Platform") and set this to X86 which will then instruct the build agent to use the x86 variant of MSBuild.
This solved my problem in conjunction with Paul Betts' answer above.
I had this problem on Windows 7 Ultimate 64bit edition when trying to set up the Windows 7 Phone SDK. No combination of SDK/Toolkit installs/repairs was working out for me so I decided to investigate a bit further.
By placing a number of
<Message />
build tasks in my Microsoft.Silverlight.Common.targets file, I discovered that I had no registry entry at Software\Microsoft\Silverlight\4.0. This was true for both the 32-bit section and the Wow6432Node section.So, the outputs of a couple of the build targets that discover where the frameworks are stored were returning blanks, subsequently failing a number of other targets down the line. Specifically, the _FullFrameworkReferenceAssemblyPaths and TargetFrameworkDirectory properties were not being set properly.
Although totally anathema to all recommendations, I circumvented the problem by manually hardcoding the values into the .targets file, like thus:
Not something I'm particularly proud of, but needs must if I'm going to make any progress with development. I hope this helps someone else.
I've encountered the same problem when running:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe
Simply run:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
If setting build to X86 and reinstalling Silverlight SDK 4 was not helpful: If you are using VS2013 on the build server, check if Windows Phone SDK is installed. I had to go run VS2013 installer, click change button and install windows phone sdk.
Or try to install windows phone sdk to be able to build windows phone solutions.
I got this same problem using TeamCity. My build step was an MSBuild action which was set to x64. Once I changed it to x86 it worked. :)