2010-06-08 2 views
36

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

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 

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

+1

Итак, вы установили Silverlight 4 SDK? – leppie

+0

Да, это моя машина для разработки. У меня есть Visual Studio 2010 и Silverlight Tools for 2010, который включает в себя SDK. Я также вижу файлы SDK в этом каталоге: C: \ Program Files (x86) \ Microsoft SDK \ Silverlight \ v4.0. – Ned

+3

Мне удалось получить успешную сборку на моей 64-разрядной машине разработки Win7, запустив MSBuild из каталога c: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319, а не из c: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319. Тем не менее, я все еще получаю ту же ошибку на моем сервере сборки, который является 64-разрядной версией Windows Server 2008 с MSBuild из этого каталога. – Ned

ответ

2

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

Поместив номер <Message /> создайте задачи в моем файле Microsoft.Silverlight.Common.targets, я обнаружил, что у меня не было записи реестра в Software \ Microsoft \ Silverl IGHT \ 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

Я настраиваю новый проект на нашем сервере непрерывной интеграции на основе Хадсона. Проект имеет зависимость от Silverlight 4 SDK, и я тоже столкнулся с этой ошибкой. Мы хотели бы, чтобы наши сборки были автономными со всеми зависимостями, проверенными в исходном управлении, чтобы допускать несколько версий зависимостей без столкновений. Установка вещей на сервере сборки - это плохая практика. Ваша исследовательская работа была полезной при диагностике проблемы с Silverlight SDK. –

+2

Было бы хорошо, если бы (а) вы точно указали в реестре недостающий ключ, (b) где в файле Microsoft.Silverlight.Common.targets вы добавили , чтобы принудительно установить пути. –

23

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

+0

Это работает, но мне также пришлось удалить и переустановить Silverlight 4 SDK. Очень расстраивает. – thomasnguyencom

4

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

В файле конфигурации сборки есть возможность установить платформу MSBuild для X86. Вы можете найти эту настройку с помощью: Process -> 3.Advanced -> MSBuild Platform (по умолчанию установлено значение auto)

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

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

20

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

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

+0

Это также решило мою проблему. Спасибо –

21

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

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

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

+1

У меня была эта проблема с tfs, и это исправило это! Спасибо – gigi

+1

Это должен быть принятый ответ – Jupaol

+0

Работает с tfs2012 –

0

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

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

0

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

Смежные вопросы