파일 또는 어셈블리 'Antlr3.Runtime (1)'또는 해당 종속성 중 하나를로드 할 수 없습니다.


82

MVC4프로젝트 를 실행하는 동안이 오류가 발생 했습니다. 다른 컴퓨터에서는 마지막으로 제대로 작동했지만 다른 컴퓨터에서 실행하려고하면이 오류가 발생합니다.

파일 또는 어셈블리 'Antlr3.Runtime (1)'또는 해당 종속성 중 하나를로드 할 수 없습니다. 찾은 어셈블리의 매니페스트 정의가 어셈블리 참조와 일치하지 않습니다. (HRESULT에서 예외 : 0x80131040)

이것에 대해 읽고 나면 여기 내가 시도한 :

설치 패키지 Antlr3.Runtime -Pre

하지만 도움이되지 않았습니다. 어떤 아이디어라도?


1
당신은 prev. 위 버전을 설치하기 전에 버전?
Spock

1
어떤 버전도 업데이트하지 않았습니다. 방금 기계를 변경했습니다
Maven

솔루션을 마우스 오른쪽 단추로 클릭 한 다음 "너겟 패키지 복원 사용"을 시도 했습니까?
TS

여기에있는 답변 중 어느 것도 도움 되지 않았지만 이 중복 에 대한 답변은 도움 이되었습니다.
DCShannon 2014 년

답변:


102

무료 Nlog 로깅 플랫폼을 실험 할 때 동일한 문제가 발생했습니다.

이것은 나를 도왔습니다.

파일 탐색기에 % TEMP %를 입력하고 모든 임시 파일을 삭제합니다.

그 후 Visual Studio에서 MVC5 프로젝트를 시작할 때 오류가 발생하지 않았습니다.


내 오류 메시지에 "(1)"이 없었지만이 솔루션은 여전히 ​​작동했습니다
Roberto

10
감사합니다. 때때로 당신은 비주얼 스튜디오의 내장을 통해 주먹을 넣을 수 있습니다 이런 식의 마이크로 소프트 쓰레기 ...
Smyrnian

대박!! 이것에 너무 많은 시간을 낭비했습니다. 내 문제는 빌드 부분이 아니지만 pubxml 파일을 사용하여 아티팩트를 게시하는 것이 Jenkins 서버에서 실패했지만 로컬 컴퓨터에서 제대로 작동했습니다. 위에서 설명한대로 임시 폴더를 삭제하면 게시 아티팩트가 문제없이 작동했습니다.
yyardim

40

다음 중 하나를 수행하여 ASP.Net의 임시 파일을 삭제하십시오.

  • 파일 탐색기에 % TEMP %를 입력하고 모든 임시 파일을 삭제합니다.
  • "C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files"폴더로 이동하여 모든 파일을 삭제합니다.

7
감사합니다. 저에게 도움이 된 것은 옵션 2였습니다
Rabbi

@Rabbi에 동의합니다. 내 문제를 해결 한 것은 옵션 2입니다. 나는 당신의 대답을 10 번 찬성 할 수 있기를 바랍니다! 대단히 감사합니다. :)
애니 Lagang

31

.NET에서 임시 ASP.NET 파일도 지우는 것을 잊지 마십시오 Framework64. 그것은 나를위한 속임수였습니다.

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

나는이 글을 볼 때까지 완벽한 덕분에, 아무 소용이 허용 대답을 시도의 Framework64 나를 위해 그것을했다
여호수아 오하나

이것은 참조 된 내 및 다른 프로젝트 DLL에서 작동합니다. 필자의 경우 웹 프로젝트의 모든 참조가 손상되었습니다. "파일이나 어셈블리 'whatever.dll'또는 해당 종속성 중 하나를로드 할 수 없습니다."라는 메시지가 나타납니다. 정리 후 dll 참조를 만들 수 있으며 모두 정상적으로 작동합니다.
Fer R

27

누군가에게 도움이 될 경우를 대비하여.
MVC 5 응용 프로그램에서이 문제가 발생했습니다. bin 디렉토리 에서 Antlr3.Runtime.dll 을 삭제 하고 다시 빌드하면 문제가 해결되었습니다.


이것은 나를 위해 일했습니다. 감사. 그러나 나는 여전히이 오류의 실제 이유에 대해 확신하지 못합니다. 누군가 설명 할 수 있습니까?
mukulsharma1146

1
제 경우에는 대신 WebGrease.dll을 삭제해야했습니다
Tharwen

감사합니다 ...이 문제를 해결하기 위해 3 시간을 보냈고 이것이 제 YSOD를 없앤 단계입니다.
조슈아 K

18

내 문제는 WebGrease의 최신 버전이 Antlr 3.4.1.9004 버전을 설치한다는 것입니다. WebGrease를 설치하고 Antlr를 버전 3.5.0.2로 업데이트하면 오류가 사라졌습니다.


11
내 문제는 정확히이 문제였습니다. Microsoft.AspNet.Web.Optimization, WebGrease 및 Antlr (순서대로)를 제거한 다음 Microsoft.AspNet.Web.Optimization, update-package WebGrease를 설치하고 마지막으로 업데이트하여 패키지 관리자 콘솔에서 종속성 체인을 해제해야했습니다. -패키지 Antlr (순서대로)를 통해 최신 버전을 가져오고 Antlr 버전 문제를 수정합니다.
Wade

13

나를 위해 web.config 파일에서이 노드를 제거하면 오류 메시지가 제거되었습니다.

<identity impersonate="true" userName="" password="">

하지만 정말 효과가 있었던 것은 C : \ Windows \ Microsoft.NET \ Framework {version} (또는 Framework64)에있는 Temporary ASP.NET Files "폴더에 대한 전체 액세스 권한 (impersonate에 지정된 userName에 대한)을 부여하는 것입니다.

이 ID는 IIS의 웹 사이트 응용 프로그램 풀 설정에도 저장 될 수 있습니다.

너겟 패키지가 올바른 버전으로 올바르게 설치되었는지 확인하십시오. 아무것도 작동하지 않으면 로컬 폴더에서 참조를 다시 추가하고 로컬 복사로 설정하십시오.


1
이것은 나를 위해 문제를 해결했습니다. web.config에는 스테이징 환경에서 가장에 대한 설정이 있으며 해당 사용자 계정은 내 개발 환경에 존재하지 않았습니다.
ttomsen

나는 세 가지 제안을 모두 시도했지만 아무것도 효과가 없었습니다. 내 Web.config의 2에서 아직도 YPOD 1.이되지 점점 <식별 태그는 내가 해킹 같은 iis_usrs 및 사용자 \ 조니 3. 마지막 옵션 모두에 '모든 권한'보인다 준
dannyrosalex

나는 명령을 사용하여 그것을 해결했다 :ASPNET_REGIIS -GA impersonatedusername
cslecours

이것은 내 문제를 해결하는 데 도움이되었습니다. 나는 로컬로 작업하고 있었고이 요소에 언급 된 계정 이름으로 내 dev 폴더에 액세스 할 수 없습니다.
Aamol

감사합니다.이 솔루션은 정말 도움이됩니다.
Josue Barrios

11

문제를 해결하는 솔루션이 있으면 어셈블리 버전 인 web.config를 확인하십시오.

<dependentAssembly>
        <assemblyIdentity name="Antlr3.Runtime" publicKeyToken="eb42632606e9261f" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.5.0.2" newVersion="3.5.0.2" />
      </dependentAssembly>

감사합니다. 패키지를 업데이트하고 문제에 직면 한 경우이 답변이 저에게 효과적이었습니다.
Fereydoon Barikzehy 2015 년

이 어셈블리를 제거하면 저에게 효과적이었습니다. 감사합니다!!
User6667769 2010 년

7

간단한 방법 중 하나는 antlr 및 webgrease를 업데이트하는 것입니다.

  1. Goto 패키지 콘솔 관리자
  2. 그런 다음이 코드를 하나씩 적용하십시오.
  3. PM> 업데이트 패키지 Antlr
  4. PM> 업데이트 패키지 WebGrease

마지막으로 오류 해결


2

나에게 이것은 Antlr의 디버그 버전과 런타임 버전 간의 불일치로 인해 발생했습니다.

마지막으로 다른 Antlr 패키지를 설치하여 해결했습니다. Install-Package Antlr


2

참조를 수동으로 추가하는 경우 Antlr3.Runtime.dll의 잠금을 해제하십시오. 여기에 이미지 설명 입력


2

web.config에서 impersonate = "true"에 문제가 발생했습니다. 작동하는 줄을 제거했습니다!

다시 한 번 줄을 배치하고 가장을 사용하여 계정 사용자에게 관리자 권한을 부여했으며 전체 응용 프로그램이 작동했습니다. :)


1

가장을 사용하는 경우. 정답은 다음 폴더에 대한 액세스를 가장하는 사용자에게 권한을 부여하는 것입니다.

  1. C:\Windows\Microsoft.NET\Framework[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files

  2. 귀하의 사이트 디렉토리.

또한 다음과 같이 폴더를 만들어야 할 수도 있습니다.

C:\Windows\Microsoft.NET\Framework\[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files\[Application-Name-Goes-Here]

그러나 이전을 먼저 시도해보십시오.

가장 된 사용자에게 임시 데이터를 저장하고 dll 파일과 필요한 파일을 디렉터리에서 가져올 수있는 권한을 부여하는 두 가지 변경 사항

업데이트, Windows 10 용 이것은 나를 위해 일한 솔루션입니다.

두 단계를 모두 수행하지만 대신 C:\Windows\Microsoft.NET\Framework[v4.0.30319 or the version that you're using]\Temporary ASP.NET Files

파일 탐색기에 % TEMP %를 작성하고 가장하려는 사용자에게 다음 폴더에 대한 액세스 권한을 부여합니다. C:\Users\[UserName]\AppData\Local\Temp\Temporary ASP.NET Files


0

프로젝트에서 WebGrease에 대한 참조가 있었지만 packages.config에 해당 요소가 없습니다. 더 이상 필요하지 않기 때문에 프로젝트에서 참조를 제거합니다. 이제 작동합니다.


0

이 게시물의 모든 답변을 시도했지만 아무도 나를 위해 일하지 않았습니다.

그래서 내 솔루션에서 모든 프로젝트 내의 모든 / bin 디렉토리를 삭제하고 솔루션을 정리하고 다시 빌드했으며 마침내 작동했습니다!

아침 내내 문제를 파악하는 데 시간을 허비했습니다 ...


0

나를 위해 일한 것은 내 webconfig (system.web 속성 아래)에서 ID = true를 제거하고 솔루션을 다시 빌드하고 (필요한 경우) 다시 게시하고 매력처럼 작동했습니다!


이 코멘트에 있어야합니다
우스만 Maqbool

0

내 문제는 그룹 정책의 매핑 된 드라이브 변경으로 인해 발생했습니다. 내 솔루션에는 RAM 드라이브 설정을 내 Z : 드라이브로 사용하도록 Web.config에 tempDirectory 설정이 설정되어 있습니다. 분명히 그들은 Z : 드라이브를 사용하기 시작했고 DLL은 평상시처럼 tempDirectory에 복사되었지만 원격 서버의 프로세스에 의해 삭제되고 있다고 생각합니다 (바이러스 검사). 나는 프로세스 모니터 를 사용 하고 Antlr에 대한 필터링을 사용 하고 DLL에 대한 네트워크 위치를 찾고 있음을 알 수있었습니다.


0

Nudget Package Manager에서 모든 패키지를 업데이트 했는데 제대로 작동했습니다! 제 경우에는 GoDaddy에서 웹 사이트를 호스팅하고 있습니다.


0

성공하지 않고 .netframework 임시 파일을 삭제하려고 시도한 후

<system.web>
    <authentication mode="None" />
    <compilation debug="true" targetFramework="4.6.1" />
    <httpRuntime />
    <pages controlRenderingCompatibilityVersion="4.0" />
</system.web> 

4.6.1 대신 targetFramework = "4.6"만 사용하면 웹 사이트가 오류없이 표시됩니다. 다음으로 다시 targetFramework = "4.6.1"로 변경하고 서버를 다시 시작합니다. 모든 것이 괜찮습니다.



0

나를위한 해결책은 도구> NuGet 패키지 관리자> 솔루션 용 패키지 관리로 이동하는 것이 었습니다.

그런 다음 Antlr3을 클릭하고 다음 위치에 설치되었는지 확인하십시오.

  1. 스타트 업 프로젝트
  2. 리플렉션을 사용하는 모든 라이브러리
  3. 리플렉션을 사용하는 라이브러리를 호출하는 모든 라이브러리

제 경우에는 4 개의 프로젝트가 필요했습니다. 그 후이 문제는 마침내 해결되었습니다.


0

나는 방금이 문제에 직면하고 위에서 언급 한 해결책을 시도했지만 지금은 아무것도 효과가 없었지만 bin floder에서 dll을 삭제하고 다시 빌드 한 다음 패키지 폴더에서 모든 관련 파일을 삭제하고 패키지 관리자 콘솔을 사용하여 패키지를 복원해야했습니다.


0

% temp % 삭제

휴지통 삭제

.vs 삭제

이제 나를 위해 일했습니다.


0

필자의 경우 프로젝트를 복제 할 때 Visual Studio 2019는 프로젝트 경로에서 공백 문자를 '% 20'으로 대체했습니다. 그런 다음 VS가 너깃 패키지를 찾으려고 할 때 올바른 경로를 찾을 수 없습니다.


0

업그레이드 후이 문제가 발생했습니다. Microsoft.AspNet.Web.Optimization

update-package WebGreaseupdate-package Antlr(순서대로) 최신 버전을 얻고 ANTLR 버전 문제를 해결합니다.


0

나를 위해, 나는이 단계를 수행했으며 나를 위해 일했습니다 :

1) 삭제 binobj폴더 (일부 파일은 Clean프로젝트에서 삭제되지 않음 )

2) JS와 같은 일부 파일을 오래 전에 삭제했지만 프로젝트 파일에 포함되어 있습니다. . 그래서 나는 그들을 제외합니다.


0

간단한 해결책이 있습니다. 자신의 프로젝트 폴더로 이동하여 패키지 폴더를 찾으십시오.

여기에 이미지 설명 입력

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