MSBuild命令行错误 – 未安装Silverlight 4 SDK

我的MSBuild命令行如下所示:

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

在VS2010中,我的开发机器上的项目没有问题,但是没有使用上面的命令。 我正在运行Win 7 64位。 我得到一个错误,说我没有安装Silverlight 4 SDK,但我这样做。 我已经阅读了一些文章,你必须设置平台= x86但没有用,这里是错误信息:

 Microsoft(R)Build Engine版本4.0.30319.1
 [Microsoft .NET Framework,版本4.0.30319.1]
版权所有(C)Microsoft Corporation 2007.保留所有权利。

开始build设6/8/2010 4:03:38 PM。
项目“E:\ code \ dashboards \ MyProject2010 \ MyProject2010.Web \ MyProject2010
 .web.csproj“节点1(默认目标)。
 GenerateTargetFrameworkMonikerAttribute:
跳过目标“GenerateTargetFrameworkMonikerAttribute”,因为所有的输出fi
文件相对于input文件是最新的。
 CoreCompile:
跳过目标“CoreCompile”,因为所有输出文件都是最新的resp
等input文件。
 CopyFilesToOutputDirectory:
  将文件从“obj \ Debug \ MyProject.Web.dll”复制到“bin \ Debug \ MyProject.Web
   .DLL”。
   MyProject2010.web  - > E:\ code \ dashboards \ MyProject2010 \ MyProject2010.Web
   \ BIN \debugging\ MyProject.Web.dll
  将文件从“obj \ Debug \ MyProject.Web.pdb”复制到“bin \ Debug \ MyProject.Web
   .PDB”。
项目“E:\ code \ dashboards \ MyProject2010 \ MyProject2010.Web \ MyProject2010
 .web.csproj“(1)正在build立”E:\ code \ dashboards \ MyProject2010 \ MyProject20
 10.Client \ MyProject2010.Client.csproj“(2)在节点1上(GetXapOutputFile target(
 S))。
 C:\ Program Files(x86)\ MSBuild \ Microsoft \ Silverlight \ v4.0 \ Microsoft.Silverlight
 .Common.targets(104,9):错误:未安装Silverlight 4 SDK。  [E:\鳕鱼
 Ë\仪表板\ MyProject2010 \ MyProject2010.Client \ MyProject2010.Client.cspr
 OJ]
完成构build项目“E:\ code \ dashboards \ MyProject2010 \ MyProject2010.Clie
 nt \ MyProject2010.Client.csproj“(GetXapOutputFile目标(s)) - 失败。

完成构build项目“E:\ code \ dashboards \ MyProject2010 \ MyProject2010.Web \
 MyProject2010.web.csproj“(默认目标) - 失败。


build立失败。

 “E:\代码\仪表板\ MyProject2010 \ MyProject2010.Web \ MyProject2010.web.csp
 roj“(默认目标)(1) - >
 “E:\代码\仪表板\ 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):错误:未安装Silverlight 4 SDK。  [E:\ C
 ODE \仪表板\ MyProject2010 \ MyProject2010.Client \ MyProject2010.Client.cs
 PROJ]

     0警告(S)
     1错误(s)

时间经过00:00:00.39

我感谢任何人的帮助。 谢谢。

我想到了这一点 – 在MSBuild中有一个设置,你可以selectMSBuild的x64或x86环境(在设置MSBuild标志的同一页面) – 将其设置为x86 ,一切都将工作。

如果由于tfs2010构build问题而到达这里,导致上述错误(即使已经安装了Silverlight 4 SDK),那么为了达到相同的修复程序,您必须编辑您的构build过程模板:

转到“进程”选项卡,展开“3.Advanced”部分,并从底部设置(“MSBuild平台”)find第二个,并将其设置为X86,然后将指示构build代理使用MSBuild的x86变体。

这与上面Paul Betts的回答一起解决了我的问题。

运行时遇到同样的问题: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe

只需运行:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe

开始文章说,你必须将目标平台设置为X86,但这不是生成服务器的解决scheme。

在你的构buildconfiguration文件中,有一个选项可以将MSBuild Platform设置为X86。 您可以通过以下方式find此设置:进程 – > 3.高级 – > MSBuild平台(默认设置为自动)

下面的问题是,Silverlight不支持64位。

我发现这个解决scheme,适用于我: http : //social.msdn.microsoft.com/Forums/en/msbuild/thread/20a742a1-b99c-4638-8590-9a9d6a95fb69

当试图设置Windows 7电话SDK时,我在Windows 7 Ultimate 64位版本上遇到了这个问题。 SDK /工具包安装/修复的组合没有为我工作,所以我决定进一步调查。

通过在我的Microsoft.Silverlight.Common.targets文件中放置一些<Message />构build任务,我发现在Software \ Microsoft \ Silverlight \ 4.0中没有registry项。 对于32位段和Wow6432Node段都是如此。

因此,发现框架存储位置的一些构build目标的输出返回空白,随后使许多其他目标失败。 特别是,_FullFrameworkReferenceAssemblyPaths和TargetFrameworkDirectory属性没有被正确设置。

尽pipe对所有build议都完全嗤之以鼻,但是我通过手动将这些值硬编码到.targets文件中来避免了这个问题,如下所示:

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

不是我特别引以为豪的,但是如果我要在发展方面取得进展的话,我们必须要这样做。 我希望这可以帮助别人。

如果将构build设置为X86并重新安装Silverlight SDK 4没有帮助:如果您在构build服务器上使用VS2013,请检查是否安装了Windows Phone SDK。 我不得不去运行VS2013安装程序,点击更改button,并安装Windows Phone SDK。

或者尝试安装windows phone sdk来构buildwindows phone解决scheme。