Ошибка командной строки MSBuild - Silverlight 4 SDK не установлен - PullRequest
36 голосов
/ 09 июня 2010

Моя командная строка MSBuild выглядит следующим образом:

msbuild e:\code\myProject.csproj /p:Configuration=Debug /p:OutputPath=bin/Debug /p:Platform=x86 /p:PlatformTarget=x86

Проект прекрасно работает на моей машине для разработки в VS2010, но не с помощью приведенной выше команды.Я использую Win 7 64 - Bit.Я получаю сообщение об ошибке, в котором говорится, что у меня не установлен 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

Я ценю чью-либо помощь. Спасибо.

Ответы [ 7 ]

23 голосов
/ 08 мая 2011

Я понял это - в MSBuild есть настройка, в которой вы можете выбрать среду x64 или x86 для MSBuild (на той же странице, где вы устанавливаете флаги MSBuild) - установите x86 , и все будет работать .

21 голосов
/ 12 февраля 2012

Если вы прибыли сюда из-за проблемы со сборками , вызвавшей вышеуказанную ошибку (даже если вы установили Silverlight 4 SDK), то для достижения того же самого исправления вы должны отредактировать свою сборку Шаблон процесса:

Перейдите на вкладку «Процесс», разверните раздел «3.Advanced» и найдите вторую настройку снизу («MSBuild Platform») и установите для нее значение X86, которое затем даст указание агенту сборки использовать вариант x86. MSBuild.

Это решило мою проблему в сочетании с ответом Пола Беттса выше.

20 голосов
/ 16 января 2012

Я столкнулся с той же проблемой при запуске: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe

Просто запустите:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe

4 голосов
/ 05 декабря 2011

В стартовом посте говорится, что вы должны установить 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 голосов
/ 14 июня 2010

У меня возникла эта проблема в 64-разрядной версии Windows 7 Ultimate при попытке установить Windows 7 Phone SDK.Никакая комбинация установки / ремонта SDK / Toolkit не работала для меня, поэтому я решил исследовать ее немного подробнее.

Поместив несколько <Message /> задач сборки в мой файл Microsoft.Silverlight.Common.targets,Я обнаружил, что у меня нет записи реестра в 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 голосов
/ 20 декабря 2017

У меня такая же проблема с использованием TeamCity.Моим шагом сборки было действие MSBuild, которое было установлено на x64.Как только я сменил его на x86, он заработал.:)

0 голосов
/ 18 августа 2014

Если установка сборки на X86 и переустановка Silverlight SDK 4 не помогли: если вы используете VS2013 на сервере сборки, проверьте, установлен ли Windows Phone SDK.Мне пришлось запустить установщик VS2013, нажать кнопку «Изменить» и установить Windows Phone SDK.

Или попытаться установить Windows Phone SDK, чтобы иметь возможность создавать решения для Windows Phone.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...