MSBuild命令行错误 - 未安装Silverlight 4 SDK
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSBuild命令行错误 - 未安装Silverlight 4 SDK相关的知识,希望对你有一定的参考价值。
我的MSBuild命令行如下:
msbuild e:codemyProject.csproj /p:Configuration=Debug /p:OutputPath=bin/Debug /p:Platform=x86 /p:PlatformTarget=x86
该项目在VS2010中的开发机器上构建良好,但不是上面的命令。我正在运行Win 7 64位。我收到一条错误消息,说我没有安装Silverlight 4 SDK,但我确实如此。我已经阅读了一些帖子,你必须设置Platform = x86但无济于事。以下是完整的错误消息:
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:codedashboardsMyProject2010MyProject2010.WebMyProject2010 .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 "objDebugMyProject.Web.dll" to "binDebugMyProject.Web .dll". MyProject2010.web -> E:codedashboardsMyProject2010MyProject2010.Web inDebugMyProject.Web.dll Copying file from "objDebugMyProject.Web.pdb" to "binDebugMyProject.Web .pdb". Project "E:codedashboardsMyProject2010MyProject2010.WebMyProject2010 .web.csproj" (1) is building "E:codedashboardsMyProject2010MyProject20 10.ClientMyProject2010.Client.csproj" (2) on node 1 (GetXapOutputFile target( s)). C:Program Files (x86)MSBuildMicrosoftSilverlightv4.0Microsoft.Silverlight .Common.targets(104,9): error : The Silverlight 4 SDK is not installed. [E:cod edashboardsMyProject2010MyProject2010.ClientMyProject2010.Client.cspr oj] Done Building Project "E:codedashboardsMyProject2010MyProject2010.Clie ntMyProject2010.Client.csproj" (GetXapOutputFile target(s)) -- FAILED. Done Building Project "E:codedashboardsMyProject2010MyProject2010.Web MyProject2010.web.csproj" (default targets) -- FAILED. Build FAILED. "E:codedashboardsMyProject2010MyProject2010.WebMyProject2010.web.csp roj" (default target) (1) -> "E:codedashboardsMyProject2010MyProject2010.ClientMyProject2010.Clie nt.csproj" (GetXapOutputFile target) (2) -> (GetFrameworkPaths target) -> C:Program Files (x86)MSBuildMicrosoftSilverlightv4.0Microsoft.Silverlig ht.Common.targets(104,9): error : The Silverlight 4 SDK is not installed. [E:c odedashboardsMyProject2010MyProject2010.ClientMyProject2010.Client.cs proj] 0 Warning(s) 1 Error(s) Time Elapsed 00:00:00.39
我感谢任何人的帮助。谢谢。
我想出来了 - 在MSBuild中有一个设置,你可以为MSBuild选择x64或x86环境(在你设置MSBuild标志的同一页面中) - 将它设置为x86,一切都会正常工作。
如果你因为tfs2010构建问题而到达这里导致上述错误(即使你已经安装了Silverlight 4 SDK),那么为了实现相同的修复,你必须编辑你的构建过程模板:
转到“Process”选项卡,展开“3.Advanced”部分,找到第二个从底部设置(“MSBuild Platform”)并将其设置为X86,然后指示构建代理使用MS86的x86变体。
这与Paul Betts上面的回答一起解决了我的问题。
我在运行时遇到了同样的问题:C:WindowsMicrosoft.NETFramework64v4.0.30319msbuild.exe
简单地运行:
C:WindowsMicrosoft.NETFrameworkv4.0.30319msbuild.exe
起始帖说你必须将Target Platform设置为X86,但这不是构建服务器的解决方案。
在构建配置文件中,有一个选项可将MSBuild Platform设置为X86。您可以通过以下方式找到此设置:Process - > 3.Advanced - > MSBuild Platform(默认设置为auto)
根本问题是Silverlight不支持64位。
我找到了这个适用于我的解决方案:http://social.msdn.microsoft.com/Forums/en/msbuild/thread/20a742a1-b99c-4638-8590-9a9d6a95fb69
尝试设置Windows 7 Phone SDK时,我在Windows 7 Ultimate 64位版本上遇到此问题。没有SDK / Toolkit安装/修复的组合对我有用,所以我决定进一步调查。
通过在我的Microsoft.Silverlight.Common.targets文件中放置一些<Message />
构建任务,我发现我在Software Microsoft Silverlight 4.0中没有注册表项。对于32位部分和Wow6432Node部分都是如此。
因此,发现框架存储位置的几个构建目标的输出返回空白,随后使一些其他目标失败。具体而言,未正确设置_FullFrameworkReferenceAssemblyPaths和TargetFrameworkDirectory属性。
尽管对所有建议都完全诅咒,但我通过手动将值硬编码到.targets文件中来规避问题,如下所示:
<PropertyGroup>
<_FullFrameworkReferenceAssemblyPaths>C:Program Files (x86)Reference AssembliesMicrosoftFrameworkSilverlightv4.0</_FullFrameworkReferenceAssemblyPaths>
<TargetFrameworkDirectory>C:Program Files (x86)Reference AssembliesMicrosoftFrameworkSilverlightv4.0ProfileWindowsPhone</TargetFrameworkDirectory>
</PropertyGroup>
这不是我特别自豪的事情,但如果我要在开发方面取得任何进展,就必须有这些需求。我希望这有助于其他人。
如果将构建设置为X86并重新安装Silverlight SDK 4没有帮助:如果在构建服务器上使用VS2013,请检查是否已安装Windows Phone SDK。我不得不去运行VS2013安装程序,点击更改按钮并安装windows phone sdk。
或者尝试安装windows phone sdk以便能够构建windows phone解决方案。
我使用TeamCity遇到了同样的问题。我的构建步骤是一个MSBuild操作,设置为x64。一旦我将其更改为x86就可以了。 :)
以上是关于MSBuild命令行错误 - 未安装Silverlight 4 SDK的主要内容,如果未能解决你的问题,请参考以下文章
使用devenv/MSBuild在命令行编译sln或csproj