파일 또는 어셈블리를로드 할 수 없습니다… 매개 변수가 잘못되었습니다


211

최근에 C # 솔루션에서 다음 예외를 만났습니다.

오류 2 파일 또는 어셈블리 'Newtonsoft.Json, Version = 3.5.0.0, Culture = neutral, PublicKeyToken = b9a188c8922137c6'또는 해당 종속성 중 하나를로드 할 수 없습니다. 파라미터가 잘못되었습니다. (HRESULT 예외 : 0x80070057 (E_INVALIDARG))

이것은 내 코드 또는 어셈블리 이름 ( Newtonsoft.Json이 경우 와 같이) 에 의존하지 않습니다 .

솔루션 에서이 dll을 삭제하면 컴파일러는 동일한 예외에서 다른 것에 대해 알려줍니다. 그래서 내 PC에서 무언가가 꺼져 있거나 켜져 있다고 가정합니다. :)


3
아니요. 컴파일러 오류이거나 런타임 예외입니다. 나는 후자를 의심한다. 좀 더 명확하게 해주세요.
leppie

2
또한 동일한 예외에 직면했지만 Thomas의 솔루션으로 문제를 해결했습니다. 문제는 정전으로 인한 시스템 종료가 잘못 되었기 때문입니다
Sandeep

답변:


346

손상된 어셈블리가 참조되는 것 같습니다.

둘 다 지우십시오.

  1. 프로젝트의 \ bin 폴더

  2. 임시 폴더 ( C:\Users\your_username\AppData\Local\Temp\Temporary ASP.NET FilesWindows 7에 있어야 함 )

오류가 계속 발생하는지 확인하십시오.


3
알렉스 감사합니다! 두 번째 도움 : 임시 ASP.NEt 파일 디렉토리를 청소했습니다.)
Liker777

그것이 작동하는 것을 기쁘게 생각합니다. 도움이 된 경우 답변을 수락해야합니다. :)
Alex

9
다른 위치 (나를 위해 일한다) 삭제하는 @Thomas으로 대답을 참조
Simon_Weaver

3
감사. 하드 충돌 후 사용자 임시 폴더를 지우면 문제가 해결되었습니다.
Petrus Theron

13
% TEMP % \ Temporary ASP.NET 파일 C : \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET 파일 C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET 파일 C : \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ Temporary ASP.NET 파일 C : \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET 파일 C : /Windows/Microsoft.NET/Framework/ v4.0.30319 / Temporary ASP.NET 파일이 목록은 다른 버전의 .NetFramework가있는 것처럼 커집니다. 답변 Src : stackoverflow.com/a/16033324/1724777 stackoverflow.com/a/11743430/1724777 조사 이유 : BLUE_SCREEN_OF_DEATH
NavaRajan

286

X64를 실행 중인지에 따라 몇 개의 스팟을 더 정리해야 할 수도 있습니다. 내 사용자 디렉토리를 정리하는 것만으로는 충분하지 않습니다.

  1. % TEMP % \ 임시 ASP.NET 파일
  2. C : \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ 임시 ASP.NET 파일
  3. C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ 임시 ASP.NET 파일
  4. C : \ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ 임시 ASP.NET 파일
  5. C : \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ 임시 ASP.NET 파일

이 목록은 다른 버전의 프레임 워크가 설치된 것처럼 커집니다.


72
당신은 당신의 컴퓨터가 컴파일시 bluescreened 경우이 작업을 수행 할 필요가 찾을 수 있습니다
Simon_Weaver

2
+1 정답에 추가로 멋지게 컴파일되었습니다. 이것은 나를 위해 감사를 고정
랄프 라벨르에게

7
이것은 컴퓨터가 충돌 할 때 Visual Studio를 관리자로 실행하거나 배터리가 부족할 때 나처럼 멍청한 경우 대안으로 보입니다.
Sav

4
세상에! 나는 그 장소에서 나의 선사 시대 프로젝트에서 4GB 이상을 얻었습니다! 이 일이 정리되지 않습니까?!?! 감사!
user2173353

2
2 년이 넘도록이 게시물이 여전히 사람들을 돕고 있음을 알려 드리고자합니다. 매우 감사합니다.
Laurence Frost

42

나는 지워야했다

C : /Windows/Microsoft.NET/Framework/v4.0.30319/ 임시 ASP.NET 파일

그래야만 문제가 해결되었습니다.


1
이 답변은 IIS Express에서 MVC 4를 호스팅하는 64 비트 Win 7 시스템과 함께 저에게도 도움이되었습니다
Ben H

13

무엇을 지우는 지 확인하려면 다음 레지스트리 키를 추가하십시오.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion\EnableLog (DWord set to 1).

그러면 아래와 같은 출력이 나타납니다. 이것은 asp.net이 DLL을로드하려는 위치를 알려줍니다. 이 디렉토리를 지우십시오.

LOG: This bind starts in default load context.
LOG: Using application configuration file: c:\app\AtlasAdvisor\web\web.config
LOG: Using host configuration file: C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet.config
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL **file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/3c8629f7/dfa387b6/Avanade.ViddlerNet.DLL.**
LOG: Attempting download of new URL **file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/3c8629f7/dfa387b6/Avanade.ViddlerNet/Avanade.ViddlerNet.DLL**.

3
또한 경로를 보려면 IIS를 재설정해야했습니다.
랜든 포치

이 로그는 어디에 표시됩니까?
Luke Rice

예외가 발생하면 오류 출력에 로그가 표시됩니다
voidsstr

12

프로젝트의 임시 프레임 워크 파일을 다음에서 지우십시오.

C : \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ 임시 ASP.NET 파일 \


5

또한 패키지 디렉토리를 지우고 NuGet 이 누락 된 패키지를 다시 다운로드 하도록 허용 할 수 있습니다

그것은 나를 위해 문제를 해결했다


... 그리고 나는 단지 문제가되는 패키지 디렉토리를 제거했지만.
Phil Cooper

AppData temp & c : \ ... \ micorosoft.net \ .. \ temp, iisreset 등에서 temps를 삭제했습니다. 그러나 나와 함께 작동하지 않습니다. D : 나는 모든 패키지를 삭제하고 복원하면 ... 그것은 덕분에 ... 저와 함께 많은 작품
bunjeeb

@bunjeeb 그것은 즐거움 친구입니다 :)
megz

4

이 폴더에서 모든 파일을 삭제하십시오.

C : /Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET 파일 C : /Windows/Microsoft.NET/Framework64/v4.0.30319/Temporary ASP.NET 파일


3

소스 제어에서 새로운 바이너리 세트를 얻는 것이 도움이되었습니다.

감사


3

이 폴더를 지우십시오. (Windows x64 만 해당)

C : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ 임시 ASP.NET 파일



2

나는 같은 문제가 있었다-위의 해결책은 효과가 없었다. ActionMailer에 문제가있었습니다. 다음 설치 제거 및 설치 nuget 명령을 실행했습니다.

uninstall-package ActionMailer
install-package ActionMailer

내 문제를 해결하고 다른 누군가를 도울 수 있기를 바랍니다.


2

COM 래퍼 dll을 참조하는 동안 발생할 수 있습니다. Visual Studio 프로젝트의 참조에서 참조중인 COM 래퍼 dll을 선택하고 다음 속성 값이 있는지 확인하십시오. "내장 Interop 형식": False 및 "특정 버전": False.


이것은 훌륭한 답변이며 더 많은 투표를해야합니다. 다른 모든 답변에는 ASP.NET 컨텍스트가 부여됩니다. 그러나 간단한 콘솔 응용 프로그램에서 COM 호출로 인해 동일한 예외가 발생했습니다. 이것은 나를 위해 완벽하게 작동했습니다. 감사합니다.
alexlomba87

2

이 경로에서 응용 프로그램 임시 데이터를 삭제합니다.

C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files

문제 해결


2

답변 에서와 같이 컴퓨터에서 호스팅되는 모든 .Net 프레임 워크와 관련된 ASP .Net 런타임의 임시 디렉토리를 지우는 것에 대해 많은 기술자가 게시 한 것으로 나타났습니다 . 그러나 모든 .Net 프레임 워크의 모든 임시 작업 디렉토리를 맹목적으로 정리 해야하는 이유에 대해 명확한 물류를 알아야한다고 생각합니다. 나에 따르면, 그렇지 않다.

내 조언은이 문제를 해결하기 위해 정확한 디렉토리 정리 방법을 시도해야한다는 것입니다. 어느 디렉토리를 지 울지 어떻게 알 수 있습니까?

  1. IIS로 이동하고 왼쪽 탐색 분할 창에서 웹 사이트 노드를 마우스 오른쪽 단추로 클릭하여 컨텍스트 메뉴를여십시오. 상황에 맞는 메뉴 에서 창 을 열려면 Manage Application-> Advanced Settings...를 가리 킵니다 Advanced Settings.
  2. 웹 사이트가 할당 된 응용 프로그램 풀을 확인하십시오. 내 경우에는 DefaultAppPool다음과 같습니다.

여기에 이미지 설명을 입력하십시오

  1. 이제 Application PoolsIIS의 왼쪽 탐색 모음에서 노드 로 이동 하십시오. 이제 앱 풀에서 실행중인 .Net CLR 버전을 확인하십시오. 제 경우에는 아래와 같이 v4.0입니다.

여기에 이미지 설명을 입력하십시오

내 응용 프로그램 풀에서 호스팅되는 CLR 버전은 v4.0이므로 ASP .NET v4.0과 관련된 폴더의 임시 파일 만 아래와 같이 명확하게 지 웠습니다.

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

그리고 그게 다야. 내 문제가 해결되었습니다.

교훈 : 이것은 웹 사이트에서 사용하는 모든 임시 파일이 여러 디렉토리에 흩어져 있지 않지만 앱 풀에서 한 번에 참조된다는 사실을 나타냅니다. 따라서 특정 폴더 만 지워야합니다.


1

C : \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ 임시 ASP.NET 파일을 지우면 나를 위해 일했습니다. 향후 문제를 피하기 위해 삭제 프로세스 자동화를 생각합니다.


1

2013 년 5 월 1 일과 같이 VS2010 셸을 사용하는 SQL Server 2012의 데이터 도구를 사용하는 경우 구성 관리자 설정을 확인하십시오. 서버 이름을 Workflow에서 xCPWorkflow로 변경 한 것만으로도 동일합니다 . 매개 변수가 잘못되었습니다 (HRESULT 예외 : 0x80070057 (E_INVALIDARG)) 메시지.



1

MVC에서 컨트롤러를 만들 때이 문제가 발생했습니다. 버전 .net 프레임 워크를 변경했습니다. 문제가 해결되었습니다


0

문제는 참조 클래스 라이브러리의 .Net 런타임 버전과 관련이 있습니다 (확장 된 참조, 라이브러리 선택 및 "런타임 버전"확인) Visual Studio 프로젝트를 v4.5로 업그레이드 한 후 Antlr3.Runtime에 문제가있었습니다. NuGet을 사용하여 Microsoft ASP.NET Web Optimization Framework 제거

그런 다음 NuGet을 사용하여 Microsoft ASP.NET Web Optimization Framework를 다시 설치했습니다. 올바른 런타임 버전이 다시 설치되었습니다.


0

제 경우에는 COM 보이는 DLL을 컴파일하고 싶었습니다. 문제는이 DLL의 이전 버전이 여기에 있다는 것입니다.

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE

따라서 Visual Studio는 등록하려고 할 때 새로 컴파일 된 버전 대신이 버전을로드했습니다.


0

임시 폴더 (C : \ Users \ user_name \ AppData \ Local \ Temp \ Temporary ASP.NET Files \ project 폴더)에서 모든 파일을 지 웁니다.


0

때때로이 폴더도 정리해야합니다. C : \ Windows \ Temp \ Temporary ASP.NET


0

응용 프로그램이 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\폴더 에서 종속 프레임 워크를 찾지 못했기 때문에 동일한 오류가 발생했습니다 . 위의 위치에 필요한 프레임 워크를 추가 한 Visual Studio를 복구하면 정상적으로 작동합니다.


0

필자의 경우 프로젝트 속성에서 IISExpress 포트 번호를 변경하면 문제가 해결되었습니다.


0

다른 사람이 WiX 툴셋을 사용하고 있다면 설치 프로젝트에 최근에 솔루션에서 제거 된 오래된 프로젝트에 대한 참조가 있음을 발견했습니다. 내가 구축하려고 시도한 솔루션에 많은 프로젝트가 있고 메시지가 어떤 프로젝트를 빌드하지 못했는지 (그리고 깨끗하고, 실패했는지) 나타내지 않았기 때문에 잠시 동안 깨달았습니다.


0

Siemens Teamcenter 10 Client for Microsoft Office 사용자에게 다른 DLL에 대해 동일한 오류가 발생했습니다. 다른 답변은 효과가 없었습니다. 해결책은 폴더를 삭제하는 것이 었습니다.

C:\Users\%username%\AppData\Local\assembly\

0

Nuget Packet Manager를 여는 동안 비슷한 문제가 있었으며 모든 임시 파일을 제거하고 프로젝트를 빌드하면 정상적으로 작동했습니다.

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