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,一切都会正常工作。

另一答案

如果你因为构建问题而到达这里导致上述错误(即使你已经安装了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的主要内容,如果未能解决你的问题,请参考以下文章

使用 MSBuild 命令行实用程序时出错

使用devenv/MSBuild在命令行编译sln或csproj

PowerShell - 启动进程和命令行开关

CMake 错误无法运行 MSBuild 命令

Docs-VisualStudio-MSBuild-MSBuild参考:MSBuild 命令行参考

Linux上的JetBrains Rider EAP - 解决方案加载失败:未找到MsBuild