programing

오류: 유형이 두 디렉터리에 모두 있습니다.

javajsp 2023. 8. 22. 21:56

오류: 유형이 두 디렉터리에 모두 있습니다.

MVC2 프로젝트에서 App_code에서 Content 폴더로 파일을 이동하여 컴파일했습니다.그런 다음 다시 App_Code로 이동한 다음 빌드 액션을 "컴파일"로 변경합니다.이제 이 오류가 표시되고 프로그램이 다시 작동하도록 수정하는 방법을 알 수 없습니다.

CS0433: '헬퍼' 유형은 두 'c:\사용자...\AppData\로컬\Temp\Temporary ASP.NET 파일\root\b00d4b7d\b2553f9c\App_Code.zowyklar.sys' 및 'c:\사용자...\AppData\로컬\Temp\Temporary ASP.NET Files\root\b00d4b7d\b2553f9c\assembly\dl3\5c6d3537\19f85663_cde9cb01\MyProject.DLL'

청소와 리빌딩은 문제를 해결하지 못합니다.

이것은 별도의 질문으로 답변되었고 저를 위해 문제를 해결했습니다.반드시 원래 사람의 대답에 투표하세요.

ASP.Net 오류: "'foo' 유형이 "temp1.dll" 및 "temp2.dll"에 모두 있습니다.

batch="false" 특성을 web.config 파일의 "compilation" 요소에 추가합니다.

이 문제는 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

MVC2 포인트가 부여된 것처럼 보이는 웹 애플리케이션을 구축하고 있다고 가정하면 App_Code 폴더를 사용해서는 안 됩니다.웹 응용 프로그램 프로젝트와 통합되도록 설계되지 않았습니다.

Visual Studio에서 컴파일하면 애플리케이션의 모든 코드(App_Code 포함)가 어셈블리로 컴파일됩니다.응용 프로그램을 실행하면 asp.net 은 App_Code라는 "특수" 폴더를 알고 그 내용을 고유한 이름의 어셈블리로 컴파일합니다.따라서 프로젝트를 실행할 때마다 이 문제가 발생합니다.

해결책:

App_Code 폴더의 이름을 "Code" 또는 "Global"(그리고 지금은 깨진 참조를 업데이트) 및 voila와 같은 이름으로 변경하면 문제가 해결됩니다.

다른 버전의 DevExpress에서 문제가 발생했습니다.
bin 및 obj 폴더에서 모든 콘텐츠를 삭제하면 웹 사이트가 다시 실행됩니다.

참조: https://www.devexpress.com/Support/Center/Question/Details/KA18674

솔루션을 정리한 다음 다시 빌드해 보십시오.Visual Studio는 새 dll을 만든 후에도 이전 dll에 대한 참조가 남아 있을 수 있습니다.

Simple Solution이 100% 도움이 되었습니다.

클래스를 App_Code 폴더 외부에 배치합니다.

http://vishaljoshi.blogspot.in/2009/07/appcode-folder-doesnt-work-with-web.html

동일한 오류가 발생했습니다. 'MyCustomDerivedFactory' 유형이 WCF 서비스 프로젝트의 App_Code 폴더에 있는 MyServiceHost 및 ServiceHostFactory 파생 클래스 모두에 있습니다.추가 중

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

오류는 해결되지 않았지만 별도의 클래스 라이브러리 프로젝트에서 내 ServiceHost 및 ServiceHostFactory 파생 클래스를 이동하면 해결되었습니다.

이것을 사용해 보세요!

일반적으로 로컬에서 이 문제가 발생하면 모든 aspnet temp 폴더를 정리합니다.하지만 최근에 제가 애저에 제 웹사이트를 발표했을 때 일이 일어났습니다.따라서 "clean temp aspnet folder"는 해결책이 아니었습니다.

인터넷에서 검색한 결과 다음과 같은 것을 발견했습니다.

온도 ASP를 지웁니다.Azure 웹 사이트의 NET 파일

나에게는 그게 효과가 있어요!

App_Code 폴더는 MVC 프로젝트(WAP)와 함께 사용되지 않습니다.

App_Code 폴더의 파일은 특수 dll의 일부로 자동으로 컴파일됩니다.파일의 Build Action 속성이 Compile로 설정되어 있으면 동일한 클래스도 기본 dll의 일부로 컴파일되고 두 개의 복사본이 생성됩니다.

빌드 작업 속성을 없음으로 설정하면 프로젝트에 클래스 복사본이 하나만 있어야 합니다.컴파일러는 빌드할 때 App_Code 폴더에서 오류를 감지하지 않지만 IntelliSense는 코드를 검증하지만 컴파일 시간 오류는 즉시 컴파일될 때까지 나타나지 않습니다.

일반 폴더에 코드를 넣고 빌드 액션이 컴파일로 설정되어 있는지 확인하는 것이 좋습니다.

솔루션/프로젝트에 이름이 "도움말"인 클래스가 두 개 있을 수 있습니다.하나의 이름을 변경한 후 다시 작성

저도 제 프로젝트 중 하나에서 같은 문제를 겪었습니다.문제는 제가 마스터 페이지를 다루는 것에서 시작되었습니다.

두 페이지가 동일한 페이지를 "상속"하는 경우에도 문제가 발생합니다.

"로그인 마스터" 상단에 다음과 같은 코드 줄이 있었습니다.마스터" & "마스터 페이지".마스터"

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

"로그인 마스터"에서 상속을 변경했습니다.마스터 대상:

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

저는 즉시 문제없이 프로젝트를 발표할 수 있었습니다.이것이 다른 사람에게 효과가 있기를 바랍니다.올바른 용어를 사용하지 못해 죄송합니다.

또한 상속 이름과 일치하도록 .cs의 클래스를 변경해야 합니다.그렇지 않으면 오류가 발생합니다.

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(자동 프로세스 수행과 동일) 또는 다른 이름으로 변경하는 것입니다.

비슷한 문제가 있었습니다. 제 경우에는 솔루션을 청소해도 Visual Studio의 bin 폴더가 지워지지 않습니다.문제의 원인이 되는 폴더에 이전 컴파일된 .dll이 있습니다.

솔루션:

  1. 수동으로 bin 폴더를 삭제하고 다시 컴파일합니다.
  2. 게시의 경우 게시하기 전에 기존 파일 삭제를 선택합니다.

이렇게 하면 문제가 해결됩니다.

웹 응용 프로그램(웹 사이트가 아님)에서 App_Code*.cs 빌드 작업(파일 속성)을 컴파일에서 콘텐츠로 변경합니다.그러면 문제가 해결됩니다.

저의 경우 프로젝트에서 이름은 같지만 확장자가 다른 항목을 사용해야 합니다.하나는 accountRep.aspx였고 다른 하나는 Crystal Report에서 만든 rep.rpt 계정이었습니다.accountReport.rpt를 accountReport.rpt로 변경했을 때 문제가 해결되었습니다.

제게 효과가 있었던 또 다른 잠재적인 해결책은 모든 참조를 변경하는 것이었습니다.

CodeFile="~/..."

로.

CodeBehind="~/..."

모든 .master 및 .aspx 페이지에서

이전 웹 사이트를 솔루션 파일을 사용하여 적절한 웹 응용 프로그램으로 변환할 때 이 문제가 발생했습니다.

다른 곳에서는 이 정보를 찾지 못했으니 누군가에게 도움이 되길 바랍니다.

확인하여 수정했습니다.Delete all existing files prior to publishVisual Studio에서:

enter image description here

이 경우, 클래스의 이름을 상속받는 클래스와 동일하게 잘못 지정했을 때 이 오류가 발생했습니다.

저는 이 페이지에서 거의 모든 제안을 시도했지만, 비주얼 스튜디오 2017을 제 컴퓨터에서 완전히 삭제해야 했습니다.최신 버전(2019)을 다시 설치했는데 마법처럼 작동했습니다.나는 이것이 미래에 누군가에게 도움이 되길 바랍니다.

이 충돌을 야기하는 dll 파일에서 참조되는 불필요한 NuGet 패키지 중 하나를 제거하여 이 문제를 해결했습니다.

이 경우 저는 ZXing을 둘 다 가지고 있었습니다.넷과 ZXing.Net.Mobile이 설치되었습니다.제가 ZXing을 제거하기 위해 Xamarin Forms에서 모바일 앱을 만들고 있었기 때문입니다.NetNuGet 패키지에서 이 문제를 해결했습니다.

서로 다른 프레임워크, 즉 ASP에 대한 중복된 NuGet 패키지가 없는지 확인하십시오.네트 대 사마린.

폴더 이름 변경 시도

  • APP_CODE
  • CODE.

이것이 제 문제를 해결했습니다.

또는 모든 코드 파일을 다른 폴더로 이동할 수 있습니다.

어셈블리 및 빌드에서 Webconfig의 수정 보고서 버전 중 하나에 주석을 달습니다.

언급URL : https://stackoverflow.com/questions/5425638/error-the-type-exists-in-both-directories