Справка : https://support.microsoft.com/en-in/help/2028526/building-an-asp-net-project-in-visual-studio-results-in-compiler-error
При создании проекта ASP.NET с помощью 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: Строка 101:
Новые заметки Строка 102:
Строка 103:
1450 Строка 104:
Резюме.
Исходный файл: d: \ http \ post \ publisher \ default.aspx Строка: 102
Ниже описаны распространенные сценарии, в которых может возникнуть эта ошибка.
Сценарий 1
Описание. Распространенная причина - наличие двух сборок в одной и той же папке bin веб-приложения, содержащих два определения классов, но имеющих одно и то же имя класса. Это может произойти, если в одну сборку скомпилировано несколько файлов Default.aspx. Обычно это происходит, когда главная страница (Default.master) и страница ASPX по умолчанию (Default.aspx) объявляют класс _Default. Решение: измените имя класса главной страницы (в большинстве случаев с _Default) и перестройте проект. Важно разрешить любой конфликт имен между классами.
Сценарий 2
Описание: Пути ссылок в Visual Studio используются для указания пути к папке для ссылок на сборки, используемых в проекте. Возможно, путь содержит сборку, содержащую то же имя класса. Может случиться так, что в одну сборку добавлено несколько ссылок (возможно, с другой версией или именем), что вызывает конфликт имен.
Решение: удалите ссылку на старую версию. Для этого в Visual Studio щелкните правой кнопкой мыши свой веб-сайт и установите флажок «Ссылки» в свойствах.
Сценарий 3
Описание: по умолчанию, когда веб-приложение ASP.NET компилируется, скомпилированный код помещается в папку временных файлов ASP.NET. По умолчанию разрешения на доступ предоставляются локальной учетной записи пользователя ASP.NET, которая имеет разрешения с высоким уровнем доверия, необходимые для доступа к скомпилированному коду. Возможно, что в разрешениях по умолчанию были внесены некоторые изменения, вызывающие конфликты управления версиями. Другая возможность заключается в том, что антивирусное программное обеспечение может случайно заблокировать сборку. Решение: очистите временную папку файлов ASP.NET от всего содержимого.
Сценарий 4
Описание: Когда для атрибута пакета в web.config установлено значение True, это устраняет задержку, вызванную компиляцией, необходимой при первом доступе к файлу. ASP.NET предварительно компилирует все нескомпилированные файлы в пакетном режиме, что вызывает задержки при первой компиляции файлов. Отключение пакетной компиляции может выявить замаскированные ошибки компиляции, которые могут существовать в приложении, но не сообщаются. Однако, что более важно для этой проблемы, он сообщает ASP.NET динамически компилировать отдельные файлы .aspx / .ascx в отдельные сборки, а не в одну. Решение: Установите batch = false в разделе web.config. Это следует рассматривать как временное решение, так как установка batch = false в разделе компиляции оказывает значительное влияние на производительность на время сборки приложения в Visual Studio.
Сценарий 5
Описание. Изменение файла web.config для приложения ASP.NET или изменение файла в папке bin (например, добавление, удаление или переименование) вызывает перезапуск домена AppDomain. Когда это происходит, все состояние сеанса теряется, а кэшированные элементы удаляются из кеша при перезапуске веб-сайта. Возможно, проблема вызвана несогласованным состоянием веб-приложения. Решение. Запустите перезапуск домена приложения, коснувшись (отредактировав) файла web.config.
Сценарий 6
Описание: вы можете хранить исходный код в папке App_Code, и он будет автоматически компилироваться во время выполнения. Полученная сборка доступна любому другому коду в веб-приложении. Таким образом, папка App_Code работает так же, как папка Bin, за исключением того, что вы можете хранить в ней исходный код вместо скомпилированного кода. Класс будет перекомпилирован при изменении исходного файла. Если возникает конфликт из-за устаревшей сборки, принудительная перекомпиляция может решить проблему. Решение: коснитесь файла в папках Bin или App_Code, чтобы запустить полную перекомпиляцию.