programing

파일 또는 어셈블리 '시스템'을 로드할 수 없습니다.보안.주요한.윈도우'

newsource 2023. 6. 9. 22:04

파일 또는 어셈블리 '시스템'을 로드할 수 없습니다.보안.주요한.윈도우'

솔루션이 성공적으로 컴파일되었지만 프로젝트에 기존 클래스 파일을 추가한 후 다음 오류가 발생했습니다.

지정한 작업 실행 파일 "csc.exe"를 실행할 수 없습니다.파일 또는 어셈블리 '시스템'을 로드할 수 없습니다.보안.주요한.Windows, 버전=4.0.1.0, Culture=중립, 공개 키Token=b03f5f7f11d50a3a' 또는 해당 종속성 중 하나입니다.지정한 파일을 찾을 수 없습니다.MVC 응용 프로그램 레지스터

설치했습니다.System.Security.Principal.Windows패키지는 NuGet별로 지정되지만 오류가 계속 나타납니다.

이전의 어떤 대답도 저에게는 통하지 않았습니다.

문제는 .NET 컴파일러 플랫폼 SDK를 설치하지 않았다는 것입니다.

해결하려면 Visual Studio Installer를 열고 "수정"을 선택한 다음 "개별 구성 요소" 탭에서 .NET 컴파일러 플랫폼 SDK를 확인하고 "수정"을 클릭하여 변경 내용을 확인합니다.

여기에 이미지 설명 입력

Visual Studio를 설치하고 다시 열었더니 문제가 사라졌습니다.

Microsoft를 업그레이드한 후에도 동일한 문제가 발생했습니다.Net. 컴파일러 2.8.2에서 2.9.0까지.오류 없이 컴파일된 2.8.2 프로젝트로 다운그레이드한 후.

동일한 문제가 발생하여 해결되었습니다.

3가지 프로젝트 솔루션의 MVC 컨트롤러(웹, 비즈니스, 데이터)

Microsoft에 의해 발생합니다.Net.Compiler 2.9.0이 웹 프로젝트에 설치되지만 다른 프로젝트에는 설치되지 않습니다.

해결 방법: 솔루션을 마우스 오른쪽 버튼으로 클릭합니다.NuGet 패키지를 관리합니다.설치됨 > 컴파일러 검색 동일한 버전이며 솔루션의 모든 프로젝트에 설치되어 있는지 확인합니다.

설치 후 성공적으로 구축된 솔루션

사용 중인 경우Microsoft.CodeDom.Providers.DotNetCompilerPlatform2.x로 업그레이드한 다음 제거할 수 있습니다.Microsoft.Net.Compilers더 이상 필요하지 않기 때문에.그것으로 해결되었지만, 애초에 솔루션을 구축할 수도 없었습니다.그것은 여전히 불평하고 있었습니다.System.Security.Principal.Windows하지만, 저는 또한 참조함으로써 그것을 해결할 수 있습니다.System.Security집회로서하지만 추천하지는 않습니다.

Visual Studio의 모든 인스턴스를 닫습니다.그런 다음 솔루션을 다시 열고 다시 빌드합니다.

둘 다 제거했습니다.Microsoft.CodeDom.Providers.DotNetCompilerPlatform그리고.Microsoft.Net.Compilers이제 모든 것이 작동합니다.

나의 경우, 나는 갈 수 있습니다.Microsoft.Net.Compilers 2.4.0사용할 필요가 없습니다.Microsoft.Net.Compilers 2.8.2.

제거하는 내용을 먼저 이해하지 못한 채 패키지를 제거하는 것을 좋아하지 않습니다.저는 제 해결책에서도 같은 문제에 직면했습니다.

많은 프로젝트 중 하나가 마이크로소프트를 사용하고 있다는 것을 알게 되었습니다.Net.Compilers NuGet 패키지 - 프로젝트 ABC라고 부릅니다.유닛 테스트 프로젝트는 해당 프로젝트 ABC를 참조하고 있었지만 Microsoft는 참조하지 않았습니다.Net. 컴파일러 NuGet 패키지.

저는 그저 마이크로소프트를 언급했을 뿐입니다.Net.Compilers NuGet 패키지를 내 유닛 테스트 프로젝트에서 가져왔는데 이제 문제가 사라졌습니다.

업데이트 중Microsoft.CodeDom.Providers.DotNetCompilerPlatform 삭제 »Microsoft.Net.Compilers저를 위해 일했습니다.

저도 'System'을 사용하면서 같은 문제가 발생했습니다.보안.교장 선생님윈도우즈 버전 4.7.0.어떤 이유에서인지 nuget 패키지를 설치했을 때 폴더에서 dll을 참조하고 있었습니다.C:\Users\{your-user}\.nuget\packages\system.경비원, 경비원.windows\4.7.0\ref\net standard 2.0\시스템.보안.주요한.그런 다음 Windows.dll을 C: 폴더에서 dll을 참조하도록 변경했습니다.\Users\{your-user}\.nuget\packages\system.경비원, 경비원.windows\4.7.0\lib\net standard 2.0\시스템.보안.주요한.Windows.dll과 모든 것이 잘 작동했습니다!그래서 저는 lib 폴더에서 제 프로젝트로 dll을 복사하고 직접 참조했습니다.

언급URL : https://stackoverflow.com/questions/51909212/could-not-load-file-or-assembly-system-security-principal-windows