【问题标题】:MSBuild Failed: The Silverlight 4 SDK is not installedMSBuild 失败:未安装 Silverlight 4 SDK
【发布时间】:2011-08-05 08:48:20
【问题描述】:

我正在尝试以编程方式运行构建,并且在构建任何 Silverlight 内容时收到消息:“C:\Program Files (x86)\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight.Common.targets(104 ,9): error : The Silverlight 4 SDK is not installed.”,但我已经安装了 Silverlight 4 SDK(很多次)。

我尝试基本上像这样构建:

var logger = new FileLogger();
logger.Parameters = @"logfile=" + buildLogFileName;

var projectToBuild = Microsoft.Build.Evaluation.ProjectCollection.GlobalProjectCollection.LoadProject(buildFile.FullName);
                projectToBuild.SetProperty("Configuration", "Release");
var successfulBuild = projectToBuild.Build(logger);

我已经尝试了许多解决方法和建议,但一切都会导致其他错误消息。似乎最好的方法是让它了解已安装 Silverlight 4 SDK,但不知道该怎么做?或者,如果我在这里遗漏了什么。

【问题讨论】:

  • 我目前没有安装 Silverlight SDK。尝试查看在 C:\Program Files (x86)\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight.Common.targets(104,9) 中检查的具体内容
  • 上面代码执行的环境是什么?我假设构建是从 VS 命令行工作的,那么有什么不同?
  • 在 .targets 文件中看起来有一个 $(TargetFrameworkSDKDirectory) 但是当我们检查(通过构建消息)它是空白的,不确定它从哪里获得初始值?是否有需要设置或类似的 Silverlight 目标?
  • 上面的代码是在开发者机器上执行的(windows 7 x64 和 VS2010),VS2010 构建可以工作,但是代码不行(虽然上面的代码对非silverlight项目有效) .

标签: silverlight-4.0 msbuild


【解决方案1】:

如果您的构建服务器具有 64 位操作系统,this post 非常有用。它讲述了将 Silverlight 的构建强制为 32 位。

【讨论】:

  • 很棒的帖子,这基本上是我看到的问题,但我没有使用构建服务器,所以没有团队资源管理器可以打开/更改
  • 所以这个问题:stackoverflow.com/questions/1074654/… 可能对你有用。
【解决方案2】:

在您的 .csproj 文件中,将标签 WindowsPhone71 替换为 WindowsPhone

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

      我遇到了同样的错误, 从 AnpCPU|Relase 更改为 X86|Release

      听从建议 http://joychua97.blogspot.com/2012/02/fixing-silverlight-4-sdk-is-not.html

      C:\Program Files (x86)\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight.Common.targets (104):未安装 Silverlight 4 SDK。

      环顾四周,他们说“Silverlight 项目无法通过 64 位 MSBuild 构建。”

      要解决这个问题: 1) 编辑您的构建定义,然后转到流程选项卡 2)展开“3. Advanced”部分并将“MSBuild Platform”值设置为“x86” 3) 保存构建定义。

      【讨论】:

      • 最坏的情况是当你在 .sln 中有多个项目并想用 64 位构建其他项目时。
      猜你喜欢
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-27
      • 2015-10-06
      相关资源
      最近更新 更多