MSBUILD 4.0 не работает на расширениях AJAX - PullRequest
9 голосов
/ 03 июня 2010

У нас есть веб-приложение .Net 2.0, и мы конвертируем решение и проекты в Visual Studio 2010 (это была Visual Studio 2005). Мы покидаем проект, нацеленный на Framework 2.0. Приложение включает в себя расширения Ajax. Мы выполнили преобразование и можем успешно построить проект на сервере с помощью Visual Studio. Однако, когда мы пытаемся построить проект через MSBUILD 4.0, мы получаем ошибки на страницах, где используются элементы управления ajax, такие как:

C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (1360,9): предупреждение MSB3267: основная ссылка «System.Web.Extensions, Версия = 1.0.61025.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35, ProcessArchitecture = MSIL ", которая сборка каркаса, не может быть решен в настоящее время целевой фреймворк. ».NETFramework, Version = v2.0" . к решить эту проблему, либо удалить ссылка "System.Web.Extensions, Версия = 1.0.61025.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35, ProcessArchitecture = MSIL "или перенастроить ваше приложение на рамочная версия, которая содержит «System.Web.Extensions, Версия = 1.0.61025.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL». [C: \ Inetpub \ Wwwroot \ gmrcwebsite \ GMRCWebsite.vbproj]

C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (1360,9): предупреждение MSB3268: основная ссылка «System.Web.Extensions.Design, Версия = 1.0.61025.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35, «ProcessArchitecture = MSIL» не удалось быть решенным, потому что он имеет косвенный зависимость от сборки каркаса «System.Web.Extensions, Версия = 1.0.61025.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 ", который не может быть решена в настоящее время целевые рамки. ».NETFramework, Version = v2.0" . к решить эту проблему, либо удалить ссылка «System.Web.Extensions.Design, Версия = 1.0.61025.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35, ProcessArchitecture = MSIL "или перенастроить ваше приложение на рамочная версия, которая содержит «System.Web.Extensions, Версия = 1.0.61025.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35" . [C: \ Inetpub \ Wwwroot \ gmrcwebsite \ GMRCWebsite.vbproj]

C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (1360,9): предупреждение MSB3268: основная ссылка «AjaxControlToolkit, Версия = 1.0.10618.0, Культура = нейтральная, PublicKeyToken = 28f01b0e84b6d53e, «ProcessArchitecture = MSIL» не удалось быть решенным, потому что он имеет косвенный зависимость от сборки каркаса «System.Web.Extensions, Версия = 1.0.61025.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 ", который не может быть решена в настоящее время целевые рамки. ».NETFramework, Version = v2.0" . к решить эту проблему, либо удалить ссылка "AjaxControlToolkit, Версия = 1.0.10618.0, Культура = нейтральная, PublicKeyToken = 28f01b0e84b6d53e, ProcessArchitecture = MSIL "или перенастроить ваше приложение на рамочная версия, которая содержит «System.Web.Extensions, Версия = 1.0.61025.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35" . [C: \ Inetpub \ Wwwroot \ gmrcwebsite \ GMRCWebsite.vbproj]

C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (1360,9): предупреждение MSB3267: основная ссылка «System.Web.Extensions.Design, Версия = 1.0.61025.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35, ProcessArchitecture = MSIL ", которая сборка каркаса, не может быть решен в настоящее время целевой фреймворк. ».NETFramework, Version = v2.0" . к решить эту проблему, либо удалить ссылка «System.Web.Extensions.Design, Версия = 1.0.61025.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35, ProcessArchitecture = MSIL "или перенастроить ваше приложение на рамочная версия, которая содержит «System.Web.Extensions.Design,Версия = 1.0.61025.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35, processorArchitecture = MSIL». [C: \ Inetpub \ Wwwroot \ gmrcwebsite \ GMRCWebsite.vbproj]

C: \ WINDOWS \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (1360,9): предупреждение MSB3268: основная ссылка «AjaxControlToolkit, Версия = 1.0.10618.0, Культура = нейтральная, PublicKeyToken = 28f01b0e84b6d53e, «ProcessArchitecture = MSIL» не удалось быть решенным, потому что он имеет косвенный зависимость от сборки каркаса «System.Web.Extensions.Design, Версия = 1.0.61025.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35 ", который не может быть решена в настоящее время целевые рамки. ».NETFramework, Version = v2.0" . к решить эту проблему, либо удалить ссылка "AjaxControlToolkit, Версия = 1.0.10618.0, Культура = нейтральная, PublicKeyToken = 28f01b0e84b6d53e, ProcessArchitecture = MSIL "или перенастроить ваше приложение на рамочная версия, которая содержит «System.Web.Extensions.Design, Версия = 1.0.61025.0, Культура = нейтральная, PublicKeyToken = 31bf3856ad364e35" . [C: \ Inetpub \ Wwwroot \ gmrcwebsite \ GMRCWebsite.vbproj]

...

ошибка BC30451: «ScriptManager» не является объявлен. Это может быть недоступно из-за до уровня защиты. ошибка BC30002: тип 'System.Web.UI.ScriptManager' не является определены. ошибка BC30002: тип 'System.Web.UI.UpdatePanel' не является определены. ошибка BC30002: тип 'System.Web.UI.UpdateProgress' не является определены.

Эта штука хорошо работала и раньше, и собиралась и отлично работала при сборке через Visual Studio. Что нам нужно сделать, чтобы исправить эти ошибки?

Ответы [ 2 ]

17 голосов
/ 19 августа 2010

У меня была та же самая проблема после настройки службы TFS Build 2008 для использования MSBuild 4.0. Все работало до преобразования проектов, после преобразования в формат 2010 и перехода на MSBuild 4 неожиданно не удалось найти библиотеки AJAX 1.0.61025.0.

Оказалось, что отсутствует раздел реестра, указывающий на место установки расширений MS Ajax.

На моем устройстве dev ключ, который должен находиться в (64-битная ОС)

HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\ASP.NET AJAX Extensions

вместо этого было помещено в HKEY_CURRENT_USER. (32-разрядная ОС: удалите часть Wow6432Node)

На сервере сборки ключ полностью отсутствовал (ни в одном из локальных профилей пользователей его не было в кусте реестра).

Значение этого ключа по умолчанию должно указывать на каталог установки MS Ajax Extensions, который в моем случае равен

C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025

После воссоздания ключа на сервере сборки наше решение успешно собирается под MSBuild 4.

Для меня до сих пор остается загадкой, почему он успешно построен до сих пор (под MSBuild 3.5). Возможно, алгоритм поиска сборки изменился незначительно и теперь является более ограничительным.

Надеюсь, это поможет.

1 голос
/ 28 июня 2010

Здравствуйте, вы найдете решение: http://www.developerit.com/2010/04/19/ms-ajax-libraries-and-configured-assemblies

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