Создание проекта ASP.NET в Visual Studio приводит к появляется сообщение об ошибке компилятора CS0433
Исходная версия продукта: Visual C++
Исходный номер базы знаний: 2028526
Сводка
При создании проекта ASP.NET с помощью Microsoft Visual Studio случайным образом может появилось сообщение об ошибке, подобное следующему:
Сообщение об ошибке компилятора: CS0433: тип "ASP.summary_common_controls_notes_ascx" существует в "c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\Book_Details\abc12345\def8910\App_Web_msftx123.dll" и "c:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\Book_Details\abc12345\def8910\App_Web_msfty456.dll".
Описание: во время компиляции ресурса, необходимого для обслуживания этого запроса, произошла ошибка. Просмотрите следующие сведения об ошибке и измените исходный код соответствующим образом.
Ошибка источника: строка 100: </div>
Строка 101: <h3 class="entry">New Notes</h3>
Строка 102: <bni:details id="details" runat="server" />
Строка 103: <span class="RedZone">1450</span>
Строка 104: <p>Сводка.</P>
Исходный файл: d:\http\post\publisher\default.aspx Строка: 102
Распространенные сценарии, в которых может возникнуть эта ошибка, рассматриваются в следующих разделах.
Сценарий 1. Две сборки в одной папке bin
Описание: Распространенная причина этой ошибки заключается в том, что в одной папке bin веб-приложения есть две сборки, содержащие два определения классов, но имеющие одинаковое имя класса. Это может произойти, если в одну сборку было скомпилировано несколько Default.aspx. Обычно это происходит, когда главная страница (Default.master) и страница ASPX по умолчанию (Default.aspx) объявляют класс _Default.
Решение: Измените имя класса страницы master (в большинстве случаев с _Default) и перестройте проект. Важно устранить любой конфликт именования между классами.
Сценарий 2. Несколько ссылок на одну сборку
Описание: Ссылочные пути в Visual Studio используются для указания пути к папке для ссылок на сборки, используемых проектом. Возможно, путь содержит сборку, а сборка содержит одно и то же имя класса. Это может быть несколько ссылок, добавленных в одну сборку (возможно, разные по версии или имени), что приводит к конфликту именования.
Решение: Удалите ссылку на старую версию. В Visual Studio щелкните правой кнопкой мыши веб-сайт и проверка ссылки в свойствах.
Сценарий 3. Изменения разрешений по умолчанию
Описание: По умолчанию при компиляции веб-приложения ASP.NET скомпилированный код помещается в папку Временные файлы ASP.NET. По умолчанию разрешения на доступ предоставляются учетной записи локального пользователя ASP.NET. Учетная запись имеет разрешения с высоким уровнем доверия, необходимые для доступа к скомпилированному коду. Возможно, были некоторые изменения в разрешениях по умолчанию, и эти изменения могут вызвать конфликты управления версиями. Другая возможность заключается в том, что антивирусная программа может непреднамеренно заблокировать сборку.
Решение: Очистите папку "Временные файлы ASP.NET" для всего содержимого.
Сценарий 4. Пакетная компиляция
Описание: Если для атрибута batch в файле web.config задано значение True, это устраняет задержку, вызванную компиляцией, необходимой при первом доступе к файлу. ASP.NET предварительно компилирует все не скомпилированные файлы в пакетном режиме. Этот пакетный режим приводит к задержкам при первой компиляции файлов.
Установка атрибута batch в значение False может привести к любым ошибкам компиляции в маске, которые существуют в приложении, но не сообщаются. Что еще более важно, он сообщает ASP.NET динамически компилировать отдельные файлы .aspx/.ascx в отдельные сборки, а не в одну сборку.
Решение: Задайте batch=False в разделе компиляции <> в web.config. Это действие следует рассматривать как временное решение. Batch=False в разделе компиляции оказывает значительное влияние на время сборки приложения в Visual Studio.
Сценарий 5. Изменение web.config перезапуск домена приложения
Описание: Изменение файла web.config для приложения ASP.NET или изменение файла в папке bin (например, добавление, удаление или переименование) приводит к перезапуску Домена приложения. При выполнении этих действий все состояние сеанса теряется, а кэшированные элементы удаляются из кэша при перезапуске веб-сайта. Проблема может быть вызвана несогласованным состоянием в веб-приложении.
Решение: Активируйте перезапуск AppDomain, коснувшись (отредактировав) файл web.config.
Сценарий 6. Измененный исходный код еще не скомпилирован динамически повторно
Описание: Исходный код можно хранить в папке App_Code, и код будет автоматически скомпилирован во время выполнения. Результирующая сборка доступна для любого другого кода в веб-приложении. Таким образом, папка App_Code работает так же, как папка Bin, за исключением того, что в ней можно хранить исходный код вместо скомпилированного кода. Класс будет перекомпилирован при изменении исходного файла. Если из-за устаревшей сборки возникает конфликт, принудительное выполнение повторной компиляции может устранить проблему.
Решение: Коснитесь файла в папках Bin или App_Code, чтобы активировать полную перекомпиляцию.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по