Ответ 1
Попробуйте очистить свое решение, а затем попытайтесь восстановить. Visual Studio, вероятно, все еще имеет ссылку на старую dll после того, как она создала новую dll.
В проекте 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 '
Очистка и восстановление не решают проблему.
Попробуйте очистить свое решение, а затем попытайтесь восстановить. Visual Studio, вероятно, все еще имеет ссылку на старую dll после того, как она создала новую dll.
На это был дан ответ в отдельном вопросе, и я решил эту проблему. Обязательно проголосуйте за оригинальный ответ человека.
Ошибка 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
Предполагая, что вы создаете веб-приложение, которому кажется, что вам предоставляется точка MVC2, вы не должны использовать папку App_Code. Он не был разработан для интеграции с проектами веб-приложений.
Когда вы Компилируете в Visual Studio, весь код в приложении (в том числе в App_Code) скомпилируется в сборку. Когда вы запускаете ваше приложение, asp.net знает о "специальной" папке, называемой App_Code и компилирует его содержимое в сборку с уникальным имя. Таким образом, в любое время, когда вы запускаете проект, вы столкнетесь с этой проблемой.
Решение:
Переименуйте папку App_Code в нечто вроде "Код" или "Глобальный", (и обновите свои теперь неработающие ссылки) и вуаля, проблема решена.
Моя проблема была с другой версией DevExpress.
Удаление всего содержимого из папок bin и obj снова запустило мой сайт...
Ссылка: https://www.devexpress.com/Support/Center/Question/Details/KA18674
Простое решение работало на 100% для меня
Поместите класс вне папки App_Code
http://vishaljoshi.blogspot.in/2009/07/appcode-folder-doesnt-work-with-web.html
У меня была такая же ошибка: Тип "MyCustomDerivedFactory" существует как в Мои классы ServiceHost и ServiceHostFactory, где в папке App_Code моего проекта службы WCF. Добавление
<configuration>
<system.web>
<compilation batch="false" />
</system.web>
<configuration>
не решила ошибку, но переместила мои производные классы ServiceHost и ServiceHostFactory в отдельный проект библиотеки классов.
ПОПРОБУЙТЕ ЭТО ОДИН!
Обычно, когда это происходит локально, я очищаю все временные папки aspnet. Но в последнее время это произошло, когда я опубликовал свой сайт в Azure. Таким образом, "чистая временная папка temp aspnet" не была решением.
После поиска в Интернете я основал это:
Очистить файлы ASP.NET от ASP.NET с веб-сайта Azure
Это работает для меня!
В вашем решении/проекте могут быть два класса с тем же именем "Помощник". Измените имя одного из них, а затем перестройте
У меня была такая же проблема в одном из моих проектов. Оказывается проблема, с которой я начинаю справляться с главной страницей.
Проблема также возникнет, если две страницы "Наследовать" одну и ту же страницу.
У меня была следующая строка кода в верхней части моего "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
Если вы переносите сайт ASP.NET 2.0 на .NET Web APP 4.5, у вас тоже может быть эта проблема. И установка batch = false, добавление пространства имен и т.д. Не может работать.
Обходным путем является переименование старой папки App_Code (или любой проблемной папки) в Old_App_Code (например, автоматический процесс) или любое другое имя.
В веб-приложении (а не на веб-сайте) я изменяю App_Code *.cs Build Action (свойства файла) от Компилировать до Контент. то проблема решается.
В моем случае у меня есть элементы с тем же именем, но с разными расширениями в моем проекте. Одним из них был аккаунтRep.aspx, а другой accountRep.rpt, сделанный Crystal Report. Проблема решена, когда я изменил accountRep.rpt на accountReport.rpt
Другим потенциальным решением, которое работало для меня, было изменение всех ссылок из
CodeFile="~/..."
к
CodeBehind="~/..."
на всех страницах .master и .aspx
Это произошло при преобразовании старого веб-сайта в соответствующее веб-приложение с файлом решения.
Я не нашел эту информацию нигде, поэтому надеюсь, что это кому-то поможет.
Папка App_Code не предназначена для использования с проектами MVC (WAP).
Файлы в папке App_Code автоматически скомпилируются как часть специальной dll. Если для свойства Build Action в файле установлено значение Compile, тот же класс также будет скомпилирован как часть основной dll, и вы получите две копии.
Установка свойства Build Action в None гарантирует, что в проекте будет только одна копия класса. Компилятор не поймает никаких ошибок в папке App_Code при создании, но Intellisense все равно проверит код, но ошибки времени компиляции не будут отображаться до тех пор, пока они не будут скомпилированы на лету.
Рекомендуемое решение - поместить код в обычную папку и убедиться, что для параметра "Действие сборки" установлено значение "Скомпилировать".
Я исправил это, проверив Delete all existing files prior to publish
в Visual Studio:
В моем случае я получил эту ошибку, когда я по ошибке назвал класс таким же, как класс, от которого он наследовал.
Я попробовал почти все предложения на этой странице, но мне пришлось полностью удалить visual studio 2017 с моей машины. Я переустановил последнюю версию (2019), и она волшебным образом сработала. Я надеюсь, что это поможет кому-то в будущем.