Подтвердить что ты не робот

Ошибка командной строки MSBuild - SDK Silverlight 4 не установлен

Моя командная строка 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

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

4b9b3361

Ответ 1

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

Ответ 2

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

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

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

Ответ 3

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

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

Ответ 4

В стартовом сообщении говорится, что вы должны установить целевую платформу на X86, но это не решение для сервера сборки.

В вашем файле конфигурации сборки есть возможность установить платформу MSBuild для X86. Этот параметр можно найти через: Процесс → 3.Advanced → Платформа MSBuild (по умолчанию установлена ​​автоматическая)

Проблема с подстиланием заключается в том, что Silverlight не поддерживает 64-разрядную версию.

Я нашел это решение, которое работает для меня, на: http://social.msdn.microsoft.com/Forums/en/msbuild/thread/20a742a1-b99c-4638-8590-9a9d6a95fb69

Ответ 5

У меня была эта проблема в Windows 7 Ultimate 64-битной версии при попытке настроить 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>

Не то, чем я особенно горжусь, но нужно, если я собираюсь сделать какой-то прогресс в разработке. Надеюсь, это поможет кому-то другому.

Ответ 6

Если настройка build на X86 и переустановка Silverlight SDK 4 не помогла: Если вы используете VS2013 на сервере сборки, проверьте, установлен ли Windows Phone SDK. Мне нужно было запустить установщик VS2013, нажать кнопку "Изменить" и установить Windows-телефон sdk.

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

Ответ 7

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