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

问题描述 投票:36回答:7

我的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,但我确实如此。我已经阅读了一些帖子,你必须设置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:\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

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

silverlight msbuild silverlight-4.0
7个回答
23
投票

我想出来了 - 在MSBuild中有一个设置,你可以为MSBuild选择x64或x86环境(在你设置MSBuild标志的同一页面中) - 将它设置为x86,一切都会正常工作。


21
投票

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

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

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


20
投票

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

简单地运行: C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe


4
投票

起始帖说你必须将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


2
投票

尝试设置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 Assemblies\Microsoft\Framework\Silverlight\v4.0</_FullFrameworkReferenceAssemblyPaths>
    <TargetFrameworkDirectory>C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone</TargetFrameworkDirectory>
</PropertyGroup>

这不是我特别自豪的事情,但如果我要在开发方面取得任何进展,就必须有这些需求。我希望这有助于其他人。


0
投票

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

或者尝试安装windows phone sdk以便能够构建windows phone解决方案。


0
投票

我使用TeamCity遇到了同样的问题。我的构建步骤是一个MSBuild操作,设置为x64。一旦我将其更改为x86就可以了。 :)

© www.soinside.com 2019 - 2024. All rights reserved.