Ссылка: 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 \ Временные файлы ASP.NET \ Book_Details \ abc12345 \ def8910 \ App_Web_msftx123.dll 'and' c: \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Временные файлы ASP.NET \ 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
Описание: если для атрибута batch в файле 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, чтобы запустить полную перекомпиляцию.