Подтвердить что ты не робот

Ошибка: тип существует в обоих каталогах

В проекте MVC2 я переместил файл из App_code в папку Content и скомпилировал его. Затем переместите его обратно в App_Code, а затем измените его действие сборки на "Скомпилировать". Теперь я получаю эту ошибку, и я не знаю, как исправить это, чтобы моя программа снова работала:

CS0433: Тип "Помощник" существует в и то и другое "C:\Users...\AppData\Local\Temp\Temporary ASP.NET Файлы\корень\b00d4b7d\b2553f9c\App_Code.zowyklar.dll" а также "C:\Users...\AppData\Local\Temp\Temporary ASP.NET Файлы\корень\b00d4b7d\b2553f9c\сборка\DL3\5c6d3537\19f85663_cde9cb01\MyProject.DLL '

Очистка и восстановление не решают проблему.

4b9b3361

Ответ 1

Попробуйте очистить свое решение, а затем попытайтесь восстановить. Visual Studio, вероятно, все еще имеет ссылку на старую dll после того, как она создала новую dll.

Ответ 2

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

Ошибка ASP.Net: " Тип & # 39; foo & # 39; существует как в "temp1.dll" и " temp2.dll "

Добавьте атрибут batch = "false" в элемент "compilation" файла web.config.

Эта проблема возникает из-за способа, которым ASP.NET 2.0 использует ссылки на приложение и структуру папок приложения для компиляции приложения. Если для свойства пакета элемента в файле web.config для приложения задано значение true, ASP.NET 2.0 компилирует каждую папку в приложении в отдельную сборку.

http://www.sellsbrothers.com/news/showTopic.aspx?ixTopic=1995

http://support.microsoft.com/kb/919284

Ответ 3

Предполагая, что вы создаете веб-приложение, которому кажется, что вам предоставляется точка MVC2, вы не должны использовать папку App_Code. Он не был разработан для интеграции с проектами веб-приложений.

Когда вы Компилируете в Visual Studio, весь код в приложении (в том числе в App_Code) скомпилируется в сборку. Когда вы запускаете ваше приложение, asp.net знает о "специальной" папке, называемой App_Code и компилирует его содержимое в сборку с уникальным имя. Таким образом, в любое время, когда вы запускаете проект, вы столкнетесь с этой проблемой.

Решение:

Переименуйте папку App_Code в нечто вроде "Код" или "Глобальный", (и обновите свои теперь неработающие ссылки) и вуаля, проблема решена.

Ответ 6

У меня была такая же ошибка: Тип "MyCustomDerivedFactory" существует как в Мои классы ServiceHost и ServiceHostFactory, где в папке App_Code моего проекта службы WCF. Добавление

<configuration>
  <system.web>
    <compilation batch="false" />
  </system.web>
<configuration>

не решила ошибку, но переместила мои производные классы ServiceHost и ServiceHostFactory в отдельный проект библиотеки классов.

Ответ 7

ПОПРОБУЙТЕ ЭТО ОДИН!

Обычно, когда это происходит локально, я очищаю все временные папки aspnet. Но в последнее время это произошло, когда я опубликовал свой сайт в Azure. Таким образом, "чистая временная папка temp aspnet" не была решением.

После поиска в Интернете я основал это:

Очистить файлы ASP.NET от ASP.NET с веб-сайта Azure

Это работает для меня!

Ответ 8

В вашем решении/проекте могут быть два класса с тем же именем "Помощник". Измените имя одного из них, а затем перестройте

Ответ 9

У меня была такая же проблема в одном из моих проектов. Оказывается проблема, с которой я начинаю справляться с главной страницей.

Проблема также возникнет, если две страницы "Наследовать" одну и ту же страницу.

У меня была следующая строка кода в верхней части моего "LoginMaster.Master" и "MasterPage.Master"

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MainMaster.master.cs" Inherits="Master_Pages_Header" %>

Я изменил Inherits на моем "LoginMaster.Master" на:

<%@ Master Language="C#" AutoEventWireup="true" CodeFile="LoginMaster.master.cs" Inherits="Master_Pages_LoginMaster" %>

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

Вам также потребуется изменить класс в .cs, чтобы он соответствовал имени Inherits. Если вы этого не сделаете, это приведет к ошибке.

IE:

public partial class Master_Pages_LoginMaster : System.Web.UI.MasterPage

Ответ 10

Если вы переносите сайт ASP.NET 2.0 на .NET Web APP 4.5, у вас тоже может быть эта проблема. И установка batch = false, добавление пространства имен и т.д. Не может работать.

Обходным путем является переименование старой папки App_Code (или любой проблемной папки) в Old_App_Code (например, автоматический процесс) или любое другое имя.

Ответ 11

В веб-приложении (а не на веб-сайте) я изменяю App_Code *.cs Build Action (свойства файла) от Компилировать до Контент. то проблема решается.

Ответ 12

В моем случае у меня есть элементы с тем же именем, но с разными расширениями в моем проекте. Одним из них был аккаунтRep.aspx, а другой accountRep.rpt, сделанный Crystal Report. Проблема решена, когда я изменил accountRep.rpt на accountReport.rpt

Ответ 13

Другим потенциальным решением, которое работало для меня, было изменение всех ссылок из

CodeFile="~/..."

к

CodeBehind="~/..."

на всех страницах .master и .aspx

Это произошло при преобразовании старого веб-сайта в соответствующее веб-приложение с файлом решения.

Я не нашел эту информацию нигде, поэтому надеюсь, что это кому-то поможет.

Ответ 14

Папка App_Code не предназначена для использования с проектами MVC (WAP).

Файлы в папке App_Code автоматически скомпилируются как часть специальной dll. Если для свойства Build Action в файле установлено значение Compile, тот же класс также будет скомпилирован как часть основной dll, и вы получите две копии.

Установка свойства Build Action в None гарантирует, что в проекте будет только одна копия класса. Компилятор не поймает никаких ошибок в папке App_Code при создании, но Intellisense все равно проверит код, но ошибки времени компиляции не будут отображаться до тех пор, пока они не будут скомпилированы на лету.

Рекомендуемое решение - поместить код в обычную папку и убедиться, что для параметра "Действие сборки" установлено значение "Скомпилировать".

Ответ 15

Я исправил это, проверив Delete all existing files prior to publish в Visual Studio:

введите описание изображения здесь

Ответ 16

В моем случае я получил эту ошибку, когда я по ошибке назвал класс таким же, как класс, от которого он наследовал.

Ответ 17

Я попробовал почти все предложения на этой странице, но мне пришлось полностью удалить visual studio 2017 с моей машины. Я переустановил последнюю версию (2019), и она волшебным образом сработала. Я надеюсь, что это поможет кому-то в будущем.