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

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

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

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

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



답변

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

둘 다 지우십시오.

  1. 프로젝트의 \ bin 폴더

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

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


답변

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 파일

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


답변

나는 지워야했다

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

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


답변

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

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**.


답변

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

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


답변

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

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


답변

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

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