오류 CS0433 "A.dll과 B.dll에 이미 'X'유형이 있습니다."라는 오류는 어디에서 발생합니까?


81

IIS가 아닌 내부 웹 서버를 사용하여 Visual Studio 2008 SP1에서 웹앱을 실행하면 위에서 언급 한 오류가 발생합니다.

전체 오류 (소스 파일 Default.aspx.cs ) :

컴파일러 오류 메시지 : CS0433 : 'WebApplication3.Site1'유형은 'c : \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ aa563bcf \ 59deedc0 \ App_Web_site1.master.cdcab7d2에 모두 있습니다. muczzy9v.dll '및'c : \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ aa563bcf \ 59deedc0 \ assembly \ dl3 \ 44c3a3cf \ 80dd34ed_6968ca01 \ WebApplication3.DLL '

이전 전체 경고 :

경고 : CS0436 : 'c : \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ aa563bcf \ 59deedc0 \ App_Web_default.aspx.cdcab7d2._tlkwdos.0의'WebApplication3._Default '유형입니다. cs '가'c : \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ aa563bcf \ 59deedc0 \ assembly \ dl3 \ 44c3a3cf \ e096e61c_6568ca01 \ WebApplication3에서 가져온 유형 'WebApplication3._Default'와 충돌합니다. .DLL '입니다. 'c : \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ aa563bcf \ 59deedc0 \ App_Web_default.aspx.cdcab7d2._tlkwdos.0.cs'에 정의 된 형식을 사용합니다.

경고 소스는 중간 파일 App_Web_default.aspx.cdcab7d2._tlkwdos.0.cs를 가리 킵니다 .

Line 162:    
Line 163:    [System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()]
Line 164:    public class default_aspx : global::WebApplication3._Default, System.Web.IHttpHandler {
Line 165:        
Line 166:        private static bool @__initialized;

그리고 내 질문 : 이것이 어디에서 왔습니까?

webapp (웹 사이트가 아님!)에는 Default.aspx 하나와 Site1.Master 하나가 있으며 종속성이 없습니다. asp:Label페이지에있는 거의 비어 있습니다. 이전에는이 ​​웹앱이 제대로 작동했습니다. Default.aspx.cs에서 마스터에 대한 참조를 제거하면 모든 것이 잘됩니다. 마스터에는 일부 코드 만 있습니다.

실제로 많은 소규모 테스트 웹앱 중 하나이므로 덜 신경 쓰지 않았습니다. 그러나 나는 이것을 전에 본 적이 없었고 지금은 코드를 새 프로젝트에 복사하는 것 외에는 무엇을 해야할지 궁금합니다 (청소 솔루션은 도움이되지 않습니다).

참고 : 이 게시물 과 다른 게시물을 읽었 지만 적용되지 않습니다.


추신 : 내 주요 생각은 : 무언가가 임시 디렉토리를 망 쳤고 여기서 나가는 주요 방법은 단순히 임시 디렉토리를 손으로 제거하고 다시 만드는 것입니다. 아직 시도하지 않았습니다 ( "증거"를 제거합니다). 누군가 여기에서 더 깊은 통찰력을 가지고있는 경우를 대비하여.
Abel

답변:


120

이론

이 문제가 응용 프로그램의 버그로 인한 것이 아닌 경우 (예 : 중복 클래스 이름) :

이 문제는 새 빌드 (예 : 코드 / 참조 / 리소스 변경)로 이어지는 응용 프로그램의 프로젝트를 변경 한 후에 나타나는 것으로 보입니다. 이 문제는이 새 빌드의 출력에있는 것으로 보입니다. 다양한 이유로 Visual Studio가 애플리케이션의 obj / bin 폴더의 전체 콘텐츠를 대체하지 않습니다 . 이로 인해 응용 프로그램의 bin 폴더 내용 중 적어도 일부가 오래된 것입니다.

이 문제가 발생하면 "Temporary ASP.NET Files"폴더를 지우는 것만으로는 문제가 해결되지 않습니다. 응용 프로그램의 bin 폴더에있는 오래된 내용이 다음에 응용 프로그램에 액세스 할 때 "임시 ASP.NET 파일"폴더로 다시 복사되어 문제가 지속되기 때문에 문제를 해결할 수 없습니다. 핵심은 기존 파일을 모두 제거하고 Visual Studio가 모든 개체를 다시 작성하도록하는 것입니다. 따라서 다음에 응용 프로그램에 액세스 할 때 새 bin 파일이 "Temporary ASP.NET Files"폴더에 복사됩니다.

해결책

  1. Visual Studio 닫기
  2. iisreset 수행
  3. "Temporary ASP.NET Files"폴더 내의 모든 폴더와 파일을 삭제합니다 (이 경로는 오류 메시지에서 참조 됨).
  4. 문제가되는 응용 프로그램의 "obj"및 "bin"폴더를 삭제합니다.
  5. Visual Studio를 다시 시작하고 솔루션을 엽니 다.
  6. "솔루션 정리"를 수행 한 다음 "솔루션 재 구축"을 수행하십시오.

설명

  • 1-2 단계 : 삭제해야하는 폴더 / 파일에서 리소스 잠금을 제거합니다.
  • 3-4 단계 : 모든 이전 빌드 파일 제거
  • 5-6 단계 : 빌드 파일의 새 버전 만들기

3
이 게시물은 원래 수락 된 답변을 명확하게 보완합니다. 좋은 설명과 명확한 단계, 감사합니다!
Abel

1
@Abel이 답을 만드는 것을 고려하십시오. ASP.NET 임시 폴더를 정리하는 것만으로는 도움이되지 않기 때문입니다!
Arin Ghazarian

2
이것은 웹이 아닌 프로젝트에서 나에게 일어났습니다. bin 및 obj 폴더를 삭제하면 문제가 해결되었습니다.
Matt H

1
@ArinGhazarian, 정확히! 나는 삭제했다 objbin이 오류를 취소뿐만 아니라 폴더를.
Santosh

훌륭한 설명과 함께 훌륭한 대답. 감사합니다!
Carlos Rodriguez

39

w3svc를 종료하고 모든 항목을 삭제하십시오. c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\

추가

  • Windows 7에서

    c:\Users\{username}\AppData\Local\Temp\Temporary ASP.NET Files\root\

  • IIS 서버 (64 비트) 이 발생할 수있다. 찾다:

    C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root

    (서버에서 최신 버전 인 경우 사용중인 프레임 워크 버전으로 v4.0.30319 대체)


2
네, 아마도 작동 할 것입니다 (위의 내 의견 참조). 그러나 나는 이것이 어디에서 왔는지, 그리고 그것을 방지하기 위해 무엇을해야하는지 (또는 재현 가능하게 만들기 위해) 조금 더 통찰력을 원했습니다. 나는 무차별 대입에 반대하지는 않지만 그렇게하기 전에 무슨 일이 일어나고 있는지 이해하고 싶습니다.
Abel

이것은 과거에 나에게 일어났습니다. 디버깅 세션 후 또는 새 세션을 시작하기 전에 정리되지 않는 VS의 문제라고 생각합니다. 이 일이 저에게 마지막으로 일어난 것은 몇 년 전 VS2005였습니다.
Alex Polkhovsky 2011

3
이것은 해결책이기 때문에 대답으로 받아 들였습니다. 그러나 "왜"를 설명하지는 않습니다. 더 나은 해결책이나 실제 이유를 찾으면 Lyman의 답변을 업데이트하거나 제 답변을 추가하겠습니다.
Abel

실제로이 대답은 저에게 효과가 없습니다. 내 프로젝트는 몇 주 전에 잘 작동했지만 오늘 시도했고 위에서 언급 한 문제를 보여줍니다. 위에서 설명한대로 임시 파일을 삭제했는데 (Windows 7의 경우) 동일한 문제가 지속됩니다. 난 아직도 궁금 이유는 ...
Venugopal M

@VenugopalM는 다른 솔루션, didnt 한 위의 솔루션은 나를 위해 일한 발견했다
VBP

11

이는 App_Code에 .cs 파일을 배치하고 웹 애플리케이션 프로젝트에서 컴파일하도록 빌드 조치를 변경 한 경우에 발생할 수 있습니다.

App_Code의 .cs 파일에 대한 빌드 작업이 Content로 있거나 App_Code의 이름을 다른 것으로 변경합니다. intellisense가 콘텐츠로 표시된 .cs 파일을 수정하지 않기 때문에 이름을 변경했습니다.

http://vishaljoshi.blogspot.se/2009/07/appcode-folder-doesnt-work-with-web.html 에서 자세한 정보


당신이 제공 한 링크는 저에게 해결책이었습니다. App_Code 폴더에서 모든 클래스를 이동하여 Classes라는 새 폴더에 넣었습니다. 그런 다음 클래스의 네임 스페이스 이름을 변경했습니다 (네임 스페이스 끝 = .App_Code 대신 .Classes). 물론 App_Code 폴더에 대한 모든 using 문과 참조를 업데이트합니다.
krlzlx

대단히 감사합니다. 이것은 나를 미치게했다
Sperick

이것은 나에게도 해결되었습니다. 감사.
JonH

9

모든 aspx 페이지와 마스터 페이지의 Inherits 태그를 살펴보십시오. 같은 이름을 가진 두 개의 부분 클래스가있을 가능성이 있습니다. 하나를 변경하고 다시 컴파일하십시오.

추가 정보는 다음과 같습니다.

http://blogs.msdn.com/b/carloc/archive/2007/06/12/compiler-error-message-cs0433-in-asp-net-2-0.aspx


좋은 지적. 그날의 코드가 다시 작성되었으므로 도움이되었는지 확인할 수는 없지만이 오류가있는 사람에게는 확실히 좋은 포인터가 될 수 있습니다. 공유해 주셔서 감사합니다.
Abel

5

이 모든 제안 후에도 여전히 문제가 발생했습니다. App_Code 내부의 일부 클래스가 두 개의 DLL로 컴파일되었습니다. 다음과 같은 것 (간체) :

warning CS0436: The type 'HcmDbGeographyModelBinder' in 

'<user_profile_dir>\AppData\Local\Temp\Temporary ASP.NET Files\temp\3b1ed8ee\11405e8e\App_Code.oqr0kusq.0.cs' 

conflicts with the imported type 'HcmDbGeographyModelBinder' in 

'<user_profile_dir>\AppData\Local\Temp\Temporary ASP.NET Files\temp\3b1ed8ee\11405e8e\assembly\dl3\ea0aa3ee\6022e6d5_2cc8cf01\HCM.Web.Backoffice.DLL'.

방금 "App_Code"폴더의 이름을 "Code"로 변경했습니다. 이것은 MVC5 프로젝트이므로 웹 프로젝트의 루트 내에서 .cs 파일을 제공하는 데 문제가 없어야합니다.


4

App_Code폴더 에서 클래스 파일을 제거하고 웹 사이트 바로 아래에 배치하면이 문제가 해결되었습니다.


3
정말 선택 사항이 아닌 것 같습니다. dll을 루트 바로 아래에 배치하는 것은 많은 보안 위험으로 간주됩니다 (App_Code 또는 bin은 특별하고 IIS / ASP.NET을 통해 액세스 할 수없는 반면 루트의 모든 dll은 간단히 다운로드 할 수 있으며 .NET 어셈블리는 쉽게 분해됨).
Abel

ASP.NET MVC4 프로젝트의 models 폴더에 클래스를 넣어이 문제도 해결했습니다.
DShook jul.

4

ASPX 파일에 중복 TagPrefix가있는 경우에도 발생할 수 있습니다.

이로 인해이 오류가 발생합니다.

<%@ Register Src="Control1.ascx" TagName="Control1" TagPrefix="uc1" %>

<%@ Register Src="Control2.ascx" TagName="Control2" TagPrefix="uc1" %>

두 번째 "uc1"을 "uc2"로 변경하여이 문제를 해결할 수 있습니다.

결정된...

<%@ Register Src="Control1.ascx" TagName="Control1" TagPrefix="uc1" %>

<%@ Register Src="Control2.ascx" TagName="Control2" TagPrefix="uc2" %>

1
이것은 실제로 문제가, tagprefix이 될 수없는 모든 컨트롤에 대해 동일합니다
SPYROS

@Spyros 저를 위해 문제를 해결했기 때문에 동의하지 않습니다. 1 년이 넘었고 이것에 관한 모든 것을 기억하지는 않지만 다른 사람들이 읽을 수 있도록 여기에 남겨 두는 것이 좋습니다.
Jason Geiger

이 대답은 내 문제를 해결했습니다. 오류가 항상 발생하는 것이 아니라 일부 배포 후에 만 ​​발생했기 때문에 이상했습니다. 스파이 로스처럼, 나는 이것이 문제를 해결할 것이라고 믿지 않았고 연결을 보지 못했습니다. 이것을 게시 해 주신 Jason Geiger에게 감사드립니다.
VFein

그 가치가 무엇인지. 이를 유발하는 컨트롤은 모두 동일한 폴더에 있었으며 여러 가상 응용 프로그램에서 가상 디렉터리로 참조되었습니다.
VFein

내 댓글을 긁어. 오류는 다시 못생긴 머리를 보여주었습니다. 드로잉 보드로 돌아갑니다.
VFein

4

참조 : https://support.microsoft.com/en-in/help/2028526/building-an-asp-net-project-in-visual-studio-results-in-compiler-error

Visual Studio를 사용하여 ASP.NET 프로젝트를 빌드 할 때 다음과 유사한 오류 메시지가 임의로 표시 될 수 있습니다.

컴파일러 오류 메시지 : 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 웹 응용 프로그램이 컴파일되면 컴파일 된 코드가 Temporary ASP.NET Files 폴더에 저장됩니다. 기본적으로 액세스 권한은 컴파일 된 코드에 액세스하는 데 필요한 높은 신뢰 권한이있는 ASP.NET 로컬 사용자 계정에 부여됩니다. 버전 관리 충돌을 일으키는 기본 권한의 일부 변경이있을 수 있습니다. 또 다른 가능성은 바이러스 백신 소프트웨어가 실수로 어셈블리를 잠글 수 있다는 것입니다. 해결 방법 : 모든 콘텐츠의 임시 ASP.NET 파일 폴더를 지 웁니다.

시나리오 4

설명 : web.config의 batch 속성이 True로 설정되면 파일에 처음 액세스 할 때 필요한 컴파일로 인한 지연이 제거됩니다. ASP.NET은 컴파일되지 않은 모든 파일을 일괄 처리 모드로 미리 컴파일하므로 파일이 처음 컴파일 될 때 지연이 발생합니다. 일괄 컴파일을 해제하면 응용 프로그램에있을 수 있지만보고되지 않는 마스킹 된 컴파일 오류가 노출 될 수 있습니다. 그러나이 문제에 대해 더 중요한 것은 ASP.NET이 개별 .aspx / .ascx 파일을 단일 어셈블리가 아닌 별도의 어셈블리로 동적으로 컴파일하도록 지시합니다. 해결 방법 : web.config의 섹션에서 batch = false를 설정하십시오. 컴파일 섹션에서 batch = false를 설정하면 Visual Studio에서 애플리케이션의 빌드 시간에 상당한 성능 영향을 미치므로 이는 임시 솔루션으로 간주되어야합니다.

시나리오 5

설명 : ASP.NET 응용 프로그램의 web.config 파일을 수정하거나 bin 폴더의 파일을 변경 (예 : 추가, 삭제 또는 이름 변경)하면 AppDomain이 다시 시작됩니다. 이 경우 모든 세션 상태가 손실되고 웹 사이트가 다시 시작될 때 캐시 된 항목이 캐시에서 제거됩니다. 웹 애플리케이션의 불일치 상태로 인해 문제가 발생할 수 있습니다. 해결 방법 : web.config 파일을 터치 (편집)하여 AppDomain 다시 시작을 트리거합니다.

시나리오 6

설명 : App_Code 폴더에 소스 코드를 저장할 수 있으며 런타임에 자동으로 컴파일됩니다. 결과 어셈블리는 웹 응용 프로그램의 다른 코드에서 액세스 할 수 있습니다. 따라서 App_Code 폴더는 컴파일 된 코드 대신 소스 코드를 저장할 수 있다는 점을 제외하면 Bin 폴더와 매우 유사하게 작동합니다. 소스 파일이 변경되면 클래스가 다시 컴파일됩니다. 오래된 어셈블리로 인해 충돌이 발생한 경우 강제로 다시 컴파일하면 문제가 해결 될 수 있습니다. 해결 방법 : Bin 또는 App_Code 폴더의 파일을 터치하여 전체 재 컴파일을 트리거하십시오.


경험상 일반적으로 제공되는 가장 간단한 솔루션을 시도하는 것으로 시작합니다. 위의 시나리오 6에서 다음과 같이 문제가 해결되었습니다. "해결 방법 : Bin 또는 App_Code 폴더의 파일을 터치하여 전체 재 컴파일을 트리거하십시오."
cjo30080

2

이것은 Web.Config의 오류로 인해 발생했습니다.

<add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
<add assembly="System.Web.WebPages, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>

Sytem.Web.Helpers(MVC 3이 프로젝트에 사용되는) 1.0.0.0 대신 3.0.0.0에서 지적했다.

IIS는 로컬 폴더에서 참조를 찾을 수 없기 때문에 GAC에서 두 가지 다른 버전을 찾았습니다. 올바른 참조를 가리킨 후 IIS는 로컬 dll을 찾아 GAC를 검색하는 대신 사용했습니다.


2

이는 동일한 클래스 이름이 여러 .aspx.cs파일에 지정된 경우, 즉 두 페이지가 다른 파일 이름으로 생성되었지만 실수로 동일한 클래스 이름을 가질 때 발생할 수 있습니다 .

// file a.aspx
public partial class Test1: System.Web.UI.Page

// file b.aspx
public partial class Test1: System.Web.UI.Page

웹 응용 프로그램을 빌드하는 동안 경고가 발생하지만 응용 프로그램이 실행되지만 게시 후 응용 프로그램이 더 이상 작동하지 않고 OP의 질문에 언급 된 예외가 발생합니다.

두 클래스 이름이 겹치지 않도록하면 문제가 해결됩니다.


이것을 조사하기 위해 Tx. 그러나 귀하의 예제의 경우, 당신은 사용 partial class, 실제로 당신이이 경우에 여러 파일에 걸쳐 하나 개의 클래스, 분할하는 일반적인 방법 (유일한 방법)이다 있어야합니다 같은 이름을 사용합니다.
Abel

이것은 웹 사이트 (응용 프로그램이 아님)에서 내 문제에 가까워졌습니다. Temp 폴더를 지우고 App_Code에서 항목을 이동하고 다른 제안이 작동하지 않았습니다. 마스터 페이지의 .cs 코드 숨김 파일을 살펴보기 전까지는 파일 이름이 클래스 이름과 일치하지 않는 것을 알았습니다 MasterPage. 마우스 오른쪽 버튼 클릭 메뉴에서 클래스 이름을 변경하면 (모든 참조도 업데이트 됨) 오류가 마침내 사라졌습니다. 내 마스터 페이지가 System.Web.UI.MasterPage수업 과 충돌한다는 것만 짐작할 수 있습니다 .
Andrew S

2

또 다른 이유를 찾았습니다. 도구 상자의 아이콘과 프로젝트의 참조에 사용되는 버전이 다릅니다. 어떤 형태로든 개체를 삽입 한 후 오류가 시작되었습니다.


1

"Clean Solution"다음에 "Rebuild Solution"도 문제를 해결하는 것 같습니다.


질문에서 설명했듯이 적어도 내 상황에서는 솔루션을 청소 해도 도움 이되지 않았습니다 . 도움이되지 않는 이유는 "클린 솔루션"을 실행할 때 정리되지 않는 임시 ASP.NET 파일 (1 차 및 2 차 답변에서 설명한대로)으로 인해 오류가 발생하기 때문입니다.
Abel

0

페이지 마크 업에서 MasterType이 참조되는 방식을 변경했습니다.

나는 변경 : <%@ MasterType VirtualPath="~/x/y/MyMaster.Master" %><%@ MasterType TypeName="FullyQualifiedNamespace.MyMaster" %>

여기를 참조 하십시오 를 .

이것이 누군가를 돕기를 바랍니다.


0

적어도 나를 위해 이것은 어셈블리에 대한 참조를 제거하고 다른 이름을 가진 최신 버전에 대한 참조를 추가했을 때 발생했습니다. 이 경우 이전 어셈블리가 binobj 폴더에 남아 있고 Visual Studio의 클린 솔루션 작업으로 제거되지 않은 것 같습니다 (더 이상 프로젝트의 일부가 아니기 때문에). 이 경우 오류가 발생한 프로젝트 의 binobj 폴더의 내용을 Windows 탐색기 (또는 파일 관리 도구) 에서 삭제하는 것으로 충분했습니다 . 그런 다음 Visual Studio에서 솔루션을 정리하고 다시 빌드합니다.


0

우리의 경우 그 이유는 IIS의 사이트에 대한 .dll 버전의 차이였습니다. IIS에서 서로 아래에 배치되어 하위 도메인을 통해 다른 항목에 액세스 할 수 있습니다. 첫 번째 web.config에서 상속하고 다음 web.config와 결합하여 다른 버전의 mvc.dll을 사용하여 실패했습니다.


0

비슷한 문제가있었습니다. 이것은 내 솔루션입니다 : 속성이 필요한 절연 클래스 넣어 [Build Action]같은 세트 [Compile]가 아닌 다른 폴더에 App_Code같은 Application_Code때문에 App_Code폴더가 2 어셈블리로 컴파일 같은 클래스를 가진 별도의 어셈블리로 컴파일됩니다.


0

동일한 클래스 이름을 가진 두 개의 ascx 컨트롤에 동일한 문제가 있습니다.

Control1 : <% @ Control Language = "C #"ClassName = " myClassName "AutoEventWireup = "true ...> Control2 : <% @ Control Language ="C # "ClassName =" myClassName "AutoEventWireup ="true ...>

클래스 이름을 간단히 변경하여 수정했습니다.

Control1 : <% @ Control Language = "C #"ClassName = " myClassName1 "AutoEventWireup = "true ...> Control2 : <% @ Control Language ="C # "ClassName =" myClassName2 "AutoEventWireup ="true ...>


0

솔루션을 닫고 다시 연 다음 두 배로 늘리기 위한 프로젝트 참조를 확인하십시오 .

여기에 이미지 설명 입력

NuGet사용 중이고 DLL 참조 위치를 변경 한 경우 발생할 수 있습니다. 이를 수정하려면 항목을 제거하는 proj 파일을 수동으로 편집해야합니다. 예 :

  <Import Project="..\packages\CefSharp.WinForms.53.0.0\build\CefSharp.WinForms.targets" Condition="Exists('..\packages\CefSharp.WinForms.53.0.0\build\CefSharp.WinForms.targets')" />

이러한 "<Import"참조는 proj 파일의 다른 위치에 나타날 수 있습니다.


0

매우 빠르고 편리한 수정은 임시로 어딘가에서 클래스를 참조하여 Visual Studio의 놀라운 지능을 악용하는 것입니다.

예:

System.Runtime.CompilerServices.ExtensionAttribute x = null;

빌드하거나 선 위에 커서를 놓으면 다음 오류를 볼 수 있습니다.

'System.Runtime.CompilerServices.ExtensionAttribute'는 'C : \ Program Files \ Reference Assemblies \ Microsoft \ Framework \ v3.5 \ System.Core.dll'에 모두 있습니다.

이것은 즉시 충돌을 일으키는 두 가지 원인을 알려줍니다.

System.Core.dll 유지하려는 .dll 파일이므로 다른 파일은 삭제하십시오.

나는 bin 디렉토리하지만 다른 프로젝트에서 할 수있다.

실제로 이것은 bin디렉터리가 TFS 변경 집합의 일부로 포함되지 않을 수 있으므로 변경 사항을 확인해도 팀의 다른 구성원의 문제가 해결되지 않는 이유를 설명 할 수 있으므로 염두에 두어야 합니다.


0

이전 asp.net (v 1 또는 2) 웹 사이트를 .net 4.5에서 웹 응용 프로그램으로 실행하도록 변환하고 있습니다.

내 해결책은 문제를 일으키는 사용자 제어 이벤트 처리기 대리자를 별도의 실제 파일로 이동하는 것이 었습니다.

//move this line to a new physical file:
public delegate void LocationSearchedEventHandler( object sender );

public partial class controls_Drives_LocationAddPanel : UserControl
{
    public event LocationAddedEventHandler LocationAdded;
    protected virtual void OnLocationAdded(LocationAddEventArg e)
    {

0

여기에는 여러 가지 이유가 있습니다. 그리고 위에서 언급 한 대부분은 다른 시나리오에 적용됩니다. 내가 주목 한 것은 인증이 '없음'이 아닌 다른 것으로 설정된 경우에만 오류가 발생한다는 것입니다. 내 테스트 목적을 위해 이것을 설정하고 작동합니다.


0

에 대한 오류 URL을 클릭 할 때 첫 번째 Google 조회를 클릭하면 여기로 리디렉션되었습니다 CS0433. 특히,

The type 'Package' exists in both 'Windows... Version=N.N.N.N, Culture=neutral, PublicKeyToken=null, ContentType=Windows...' and 'Windows..., Version=255.255.255.255, Culture=neutral, PublicKeyToken=null, ContentType=Windows...'

내가 그것을 고치기 위해 한 모든 일을 요약하는 대신, 내가 뭘했는지 말해주지. 코드 업데이트가 필요한 리포지토리의 NuGet 패키지를 업데이트했습니다. 패키지는 꽤 오래되었고 (1 년 정도) 제가 처음에 시도한 것은 C # 프로젝트를 위해 업데이트하는 것뿐이었습니다.

해당 프로세스를 시작하고이 오류가 발생하는 사이에 SLN의 C ++ 프로젝트 버전을 15063. 또한 모두는 C # 프로젝트를 한 것으로 나타났습니다 TargetPlatformMinVersionTargetPlatformVersion새로 설정10.0.17134.0

내가 "수정"하기 위해해야 ​​할 유일한 일은 C # 프로젝트 TargetPlatformMinVersion보다 더 높은 버전 으로 변경하는 것 TargetPlatformMinVersion입니다. C ++ 프로젝트를 두 버전으로 수정해도 동작이 변경되지 않았습니다. 왜 이것이 갑자기 작동을 멈췄는지 잘 모르겠지만 비슷하게 차단 된 누군가가 비슷한 전략을 사용하여 피클에서 벗어날 수 있기를 바랍니다.


0

2Toad의 답변을 시도하는 것 외에도 Visual Studio를 닫고 .vs 폴더를 삭제해야했습니다. 그 후 모든 것이 올바르게 구축되었습니다.

덧붙여서 내가 발생한 오류는 내 Temp 폴더를 전혀 지정하지 않았지만 분명히 시스템에서 생성 된 다른 것을 참조하고있었습니다. 특정 오류 저장을 무시했습니다. \


0

다른 솔루션이 작동하지 않으면 해당 문제의 inherits 클래스 이름을 변경하여 aspx 파일 및 aspx.cs 파일을 새 이름으로 변경 한 다음 솔루션을 다시 빌드하십시오. 그러면 문제가 확실히 해결 될 것입니다. 이것은 나에게만 효과적이었습니다.

예 :

aspx 파일에서 다음을 수행하여 상속 클래스 이름을 Defaultnew로 변경하십시오.

<%@ Page Title="" Language="C#"  MasterPageFile="~/Main.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Defaultnew" %>

aspx.cs 파일에서 클래스 이름을 aspx 파일에서 사용되는 것과 동일하게 바꿉니다.

using System;
using System.Collections.Generic;
using System.Web;

public partial class Defaultnew : System.Web.UI.Page
{
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.