Я использую Microsoft.Build.BuildEngine для создания ряда проектов. Проекты, которые не используют Silverlight, строятся правильно, в то время как проекты, которые используют Silverlight, не строят. Все эти проекты (Silverlight и не Silverlight) все прекрасно работают через Visual Studio 2008. Я получаю сообщение об ошибке:
ошибка CS0234: имя типа или пространства имен 'SilverlightControls' не существует в
пространство имен 'System.Web.UI' (отсутствует ссылка на сборку?)
Я добавил System.Web.Silverlight в проект, который выполняет сборку с использованием Microsoft.Build.BuildEngine. Я могу видеть, что пространство имен в проекте также выполняет сборку (так что у проекта, выполняющего сборку, есть доступ к System.Web.UI).
Есть идеи, как мне избежать этой ошибки?
Увеличил детализацию сборки через VS2008 и сравнил с журналом, созданным из Microsoft.Build.BuildEngine. Похоже, что Microsoft.Build.BuildEngine создает такие строки:
Рассматривается как "c: \ Program Files \ Ссылочные сборки \ Microsoft \ Framework".
\ v3.5 \ System.Web.Silverlight.dll ", но он не существует.
Его нет в этом месте, не так ли? На самом деле есть несколько мест, где он ищет эту DLL и не находит ее. Я добавил ссылку, щелкнув правой кнопкой мыши, добавить ссылку, .Net, добавить. Похоже, что на моей машине нет файла System.Web.Silverlight.dll (что странно, поскольку проект компилируется с использованием VS2008).
Сравнение, возможно, соответствующих разделов двух журналов:
Microsoft.Build.BuildEngine
Для SearchPath "{GAC}".
Считается "System.Web.Silverlight, версия = 2.0.5.0, культура = нейтральная,
PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL ", который не был найден в
GAC.
Visual Studio 2008
System.Web.Silverlight, версия = 2.0.5.0, культура = нейтральная,
PublicKeyToken = 31bf3856ad364e35, процессор архитектуры = MSIL
Вручную добавил System.Web.Silverlight к пути, который искал Microsoft.Build.BuildEngine (скопировал его из выходного каталога, когда я собирал проект через VS2008). Это решило эту проблему, но теперь я получаю следующие ошибки в компонентах решения Silverlight:
C: \ Program Files \ MSBuild \ Microsoft \ Silverlight
\ v2.0 \ Microsoft.Silverlight.Common.targets (95,9): ошибка: не установлен Silverlight 2 SDK
установлен.
Есть идеи?