IT TIP

원본 어셈블리를 신뢰할 수 없기 때문에 MSTest 실행이 실패합니다.

itqueen 2020. 11. 26. 20:35
반응형

원본 어셈블리를 신뢰할 수 없기 때문에 MSTest 실행이 실패합니다.


방금 테스트 프로젝트에 xUnit을 추가했고 (Asserts의 경우 MSTest를 프레임 워크로 계속 사용하고 있음) 즉시 테스트 실행이 테스트 실행을 거부했습니다. 다음은 오류 메시지입니다.

테스트 실행 '{....}'대기열에 실패했습니다. 테스트 실행 배포 문제 : '... xUnit.dll'파일 또는 디렉터리의 위치를 ​​신뢰할 수 없습니다.


Google에서 답을 찾으려고 몇 번 시도해야했기 때문에 다른 사람이 같은 문제에 부딪 힐 경우를 대비하여 여기에 넣겠습니다. 자세한 설명은 이 블로그 게시물 에서 찾을 수 있습니다 .

기본적으로 수정 프로그램은 Windows 탐색기에서 dll 파일 (예 : xunit.dll)을 마우스 오른쪽 버튼으로 클릭하고 속성으로 이동 한 다음 '보안'텍스트 옆의 탭 하단에있는 "차단 해제"를 클릭합니다. Vista / Windows 2008은 다른 컴퓨터 나 인터넷에서 가져온 어셈블리를 안전하지 않은 것으로 자동 표시하는 것 같습니다.

몇 명의 댓글 작성자가 언급했듯이이 기능을 적용하려면 Visual Studio를 다시 시작해야 할 수도 있습니다.


우리 팀에서도 같은 문제가있었습니다.

솔루션이 작동하지 않았지만 Charles Sterling의이 게시물 이 도움이되었습니다.

다음 줄을 사용했습니다.

caspol -machine -addgroup 1 -url file://\\server/share/* FullTrust -name DevShare

이 문제가 발생하고 몇 분 이상 "차단 해제"를 유지하려고 노력하고 / 또는 캐스 폴 을 사용할 수 없다는 것을 알아 내려고 노력한 후 마침내 Google을 통해 다음에 빌드 할 때 어셈블리가 다시 차단된다는 정보를 발견했습니다. 또는 원래 소스 위치에서 다시 복사되므로 프로젝트를 다시 빌드하십시오. (나는 이것이 참조 어셈블리에서 이전에 일어났다는 것을 결코 알지 못했지만 어쨌든 ...)

이에 대한 내 수정 사항은 다음과 같습니다.

  1. 안전한 보관을 위해 필요한 모든 DLL을 다른 위치에 복사합니다.

  2. Visual Studio에서 참조 제거

  3. bin 폴더에서 DLL을 물리적으로 삭제

  4. 복사 된 위치에서 DLL을 개별적으로 차단 해제

  5. 보류 지점에서 Visual Studio에 다시 참조 추가

이후의 모든 빌드 또는 다시 빌드는 나중에 정상적으로 작동했습니다.


XP 컴퓨터에서 실행 (.NET 3.5 SP1이 설치된 경우에도) 여기에 나열된 다른 솔루션을 사용할 수 없었습니다.

그러나 Davy Landman이 언급 한 Charles Sterling 의 동일한 게시물 에서 작업하면서 마침내이 변형으로 성공했습니다.

  1. .NET 2.0 구성 도구 실행 (설정 ... 제어판 ... 관리 도구 ... .NET Framework 2.0 구성)
  2. "내 컴퓨터 ... 런타임 보안 정책 ... 컴퓨터 ... 코드 그룹 ... All_Code"를 클릭하십시오.
  3. 멤버십 조건이 "Zone"= "Local Intranet"인 새 코드 그룹을 만들고 권한 집합 "FullTrust"를 할당합니다.
  4. Visual Studio 다시 시작

이 단계 후에는 다시 시작 및 다시 빌드를 포함하여 테스트를 실행할 수 있습니다.

편집 : 이 답변 에서 설명한 대로 시스템에 .NET 2.0 구성 도구를 사용하려면 .NET SDK (.NET 프레임 워크와 다른)를 설치해야 할 수도 있습니다.


moq에서도 같은 문제가 발생했습니다. 그러나 '차단 해제'하지 않습니다. 차단을 해제 할 때마다 여전히 차단되었습니다!?!?

다운로드 한 원본 zip 파일의 차단을 해제해야했습니다. 그런 다음 zip 파일에서 DLL을 다시 복사하십시오. 그 후에 작동합니다.


지금은 정말 분명해 보일지 모르지만 차단 해제를 클릭하면 파일이 읽기 전용으로 설정되었습니다.

해당 속성의 선택을 취소하고 적용한 다음 차단 해제를 선택해야만 실제로이 작업이 수행되었습니다.

그것을 줘.

:)

추신 : Visual Studio가 이전 dll을 선택하지 않았는지 확인하기 위해 내 bin 폴더에있는 모든 이전 dll도 삭제했습니다.


Vista에 의해 차단 된 다운로드 된 DLL과 동일한 문제가 발생했습니다. 파일 속성에서 "차단 해제"버튼을 얻으려면 관리자 권한이 필요합니다. 나는 단순히 소스 제어에서 최신 버전으로 DLL을 대체 내가 전에 그들을 약속했다 (TFS).


  • 이동 file
  • 마우스 오른쪽 버튼을 클릭하고 선택 Properties
  • 첫 번째 등록에서 Allow

또한 메모장 ++에서 파일을 열고 이름을 변경해 보았습니다. 약간 다른 접근 방식이지만 저에게는 효과적이었습니다. 그런 다음 로컬 파일 시스템은 동일한 시스템에서 온다고 생각합니다.


차단을 해제해야하는 것은 moq.dll 뿐만이 아닙니다. 최신 zip 파일에는 moq.xml 및 moq.pdb 파일이 포함되어 있습니다. dll을 참조하면 다른 두 파일도 bin 폴더에 복사됩니다. 세 가지가 모두 차단되지 않으면 테스트가 실행되지 않습니다.

참고 URL : https://stackoverflow.com/questions/201327/mstest-run-fails-because-source-assembly-is-not-trusted

반응형