Ошибки ссылок на библиотеку ASP.NET UpdatePanel - PullRequest
7 голосов
/ 17 августа 2010

У меня проблема с VS 2010, который, очевидно, теряет способность загружать UpdatePanel в середине разработки, и это сводит меня с ума. Я использую VS2010 и создаю пользовательский элемент управления с .NET 3.5 с таргетингом на DNN 5.x.

Я создал элемент управления для использования на веб-сайте DNN, который использует панель обновления. Когда я разрабатываю управление по FTP на сайт и развиваюсь на нем, все работает просто отлично. Я решил перенести разработку в локальную копию DNN и создать проект веб-приложения для контроля. Сначала все работало просто отлично. После нескольких сборок я начал получать следующие ошибки:

Тип или имя пространства имен «UpdateProgress» не существует в Пространство имен 'System.Web.UI.WebControls.WebParts' (вы пропустили сборку ссылка?)

Тип или имя пространства имен UpdatePanel не существует в Пространство имен 'System.Web.UI.WebControls.WebParts' (вы пропустили сборку ссылка?)

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

Я выполнил все те же шаги: выгрузил ссылки, перезагрузил их и, наконец, удалил проект. Каждый раз, когда я создаю новый проект и копирую один и тот же код в файлы .ascx, они отлично работают ... для нескольких сборок. Прошлой ночью я скомпилировал библиотеку и проверил изменения. Все было отлично, поэтому я закрыл проект и выключил машину. Включил его сегодня утром и получил ошибки сборки. Как будто у меня есть бомба замедленного действия в моем компьютере, которая просто отключает эти вещи.

Есть идеи о том, что мне не хватает, что может быть причиной этого? Я не знаю, почему библиотека так мерцает и гаснет. Я до сих пор не сталкивался с подобной проблемой с любым другим проектом на моей локальной машине, и я действительно не хочу развивать это через FTP на сайт, опять же. BLEH!

Ответы [ 3 ]

15 голосов
/ 25 января 2012

Мое решение тоже попало в это странное состояние. Это произошло после редактирования конфликтов в веб-конфиге после получения последнего использования АнхСВН. Ошибка отображалась только на той странице, которую я открывал в Visual Studio в то время. Он сказал, что больше не может найти UpdatePanel или UpdateProgress в System.Web.UI, что не имеет смысла, поскольку я использую эти элементы управления на других своих страницах.

Исправление :
Просто перетащите панель обновления с панели инструментов на страницу с сообщением об ошибке. Очистите и восстановите, и вы готовы. Все, что вам осталось сделать - это удалить только что добавленную панель обновления.
Я полагаю, что при этом происходит переоснащение вещей в решение, которое я не мог видеть.

3 голосов
/ 24 июня 2011

Если вы изучите новый файл web.config, вы обнаружите следующее (или что-то близкое) было добавлено. Я смог добавить эту директиву компилятора без других изменений и успешно скомпилировать. ScriptManager находится в более старой версии расширений .dll и должен быть связан. Кажется, что создание нового веб-сайта добавит директивы компилятора, а обновление - нет.

<!--/system.webServer  positional notes-->;

<runtime>
    <assemblyBinding appliesTo="v2.0.50727" xmlns="urn:schemas-microsoft-com:asm.v1">
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
        <dependentAssembly>
            <assemblyIdentity name="System.Web.Extensions.Design" publicKeyToken="31bf3856ad364e35"/>
            <bindingRedirect oldVersion="1.0.0.0-1.1.0.0" newVersion="3.5.0.0"/>
        </dependentAssembly>
    </assemblyBinding>
</runtime>

<!-- /configuration -->
1 голос
/ 27 июня 2014

У меня была та же проблема во всех моих старых проектах после обновления до Framework 4.0.Я много раз пытался выяснить, почему это происходит, и ничего, что я нашел, не сработало.Моя команда потратила больше года на ручное обновление designer.vb для UpdatePanel, чтобы иметь правильную ссылку каждый раз, когда мы меняли ASPX.

Произошла ошибка в ссылке файла проекта на AjaxControlToolkit.Ссылка в файле .vbproj была специфичной для версии 3.5.Так что просто обновление DLL не обновило ссылку.Решением было удалить ссылку AjaxControlToolkit, сохранить проект, а затем добавить ссылку обратно на AjaxControlToolkit.dll.

Если вы открыли файл проекта в текстовом редакторе, возможно, вы видели что-то вроде этого:

<Reference Include="AjaxControlToolkit, Version=3.5.60623.0, Culture=neutral, 
    PublicKeyToken=28f01b0e84b6d53e, processorArchitecture=MSIL>
    <SpecificVersion>False</SpecificVersion>
    <HintPath>bin\AjaxControlToolkit.dll</HintPath>
</Reference>

Если вы все сделали правильно, это должно выглядеть так:

<Reference Include="AjaxControlToolkit">
    <HintPath>bin\AjaxControlToolkit.dll</HintPath>
</Reference>
...