Silverlight 4.0 MSBuild失败:未安装Silverlight 4 SDK

Silverlight 4.0 MSBuild失败:未安装Silverlight 4 SDK,silverlight-4.0,msbuild,Silverlight 4.0,Msbuild,我正在尝试以编程方式运行生成,并且在生成任何Silverlight内容时收到消息:“C:\Program Files(x86)\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight.Common.targets(104,9):错误:未安装Silverlight 4 SDK。”,但我已经安装了Silverlight 4 SDK(多次) 我尝试这样构建: var logger = new FileLogger(); logger.Param

我正在尝试以编程方式运行生成,并且在生成任何Silverlight内容时收到消息:“C:\Program Files(x86)\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight.Common.targets(104,9):错误:未安装Silverlight 4 SDK。”,但我已经安装了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,但不确定如何做到这一点?或者如果我在这里遗漏了什么。

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

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

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


或者尝试安装windows phone sdk来构建windows phone解决方案。

我也遇到了同样的错误, 更改了AnpCPU的发布格式,将其重新发布为X86版本

把建议放在后面

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) 保存生成定义。

我目前没有安装Silverlight SDK。请尝试查看在C:\Program Files(x86)\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight.Common.targets(104,9)中检查了哪些内容。执行上述代码的环境是什么?我假设构建是从VS命令行运行的,那么有什么不同呢?在.targets文件中,看起来有一个$(targetFrameworkDKDirectory),但是当我们检查(通过构建消息)它是否为空时,不确定它从何处获得初始值?是否需要设置silverlight目标或类似的目标?上面的代码正在开发人员机器上执行(使用VS2010的windows 7 x64),VS2010版本可以运行,但代码不能运行(尽管上面的代码可以用于非silverlight项目)。这是一篇很棒的文章,基本上就是我看到的问题,但我没有使用构建服务器,因此没有团队资源管理器可打开/更改,所以可能这个问题:可能对您有用。最糟糕的情况是,当您在.sln中有多个项目,并且希望在64位中构建其他项目时。