2016-06-16 5 views
3

XUnit의 최신 버전을 사용 중이며 these steps에이어서 클래스 라이브러리 (.NET Core) 프로젝트가 시작됩니다. 내 전체 솔루션 전반에 걸쳐 다른 모든 라이브러리는 4.6.1을 사용하는.NET Core XUnit 프로젝트에서 표준 dll을 참조하십시오.

그래서 나는 다음에 project.json의 프레임 워크 부분을 변경 :

{ 
    "frameworks": { 
     "net461": { 
      "dependencies": { 
       "Microsoft.NETCore.Platforms": "1.0.1-rc2-24027" 
      } 
     } 
    } 
} 

모든 것이 내 솔루션의 미세한 내부를 작동합니다. 나는 테스트를 실행할 수 있으며 다른 라이브러리에 대한 모든 참조는 461 개이지만 잘 작동합니다. 기본적으로, 내 솔루션에는 몇 가지 다른 클래스 라이브러리 (.NET Core)가 있고 XUnit 라이브러리는 Visual Studio를 통해 참조 할 수 있으며 참조는 XUnit 프로젝트의 project.json 파일에 추가됩니다. 다른 개발자 컴퓨터에

만 복사 xUnit의 프로젝트 :

상황

는 다음 작업을 수행 할 필요가 어디에서 발생했다. 테스트를 만들 수 있도록 소스 코드를 편집 할 수는 있지만 다른 모든 라이브러리/코드에 액세스 할 수는 없습니다. 다른 DLL을 모두 임의의 폴더에 복사하고 독립 실행 형 XUnit 프로젝트에서 참조 할 수있을 것이라고 생각했습니다. 그러나 참조하려고 할 때 .NET 핵심 프로젝트가 표준 dll을 참조 할 수 없다는 오류가 발생하기 때문에 그렇지 않습니다.

누군가 내가이 작업을 수행 할 수있는 방법에 대한 아이디어를 줄 수 있습니까?

답변

6

라이브러리를 너겟 패키지로 배포해야합니다.

.NET 코어는 Nuget을 통해서만 종속성이 작동합니다. 백그라운드 참조에서 VS UI ("참조 추가"명령)를 사용하여 참조를 추가해도 nuget 패키지로 추가됩니다. project.json 파일을 열면 동일한 "패키지 : 버전"형식을 사용하여 라이브러리가 지정되어 있음을 알 수 있습니다 "의존성"섹션에서 다른 것처럼).

코드를 Nuget 패키지로 압축하려면 dotnet pack 명령을 사용하십시오.

공개 Nuget 소스를 사용하지 않는 경우 Hosting Your Own Nuget Feed 수 있습니다.

+0

고맙습니다. 내 자신의 사용자 정의 피드를 작성하고 nuget.exe를 사용하여 모든 dll을 패키지로 압축 한 다음 참조하십시오. –

+0

.NET Core 2.0이 출시되면 디스크에서 어셈블리를 직접 참조 할 수 있어야합니다. https://github.com/dotnet/sdk/issues/120 –

+0

@JaanusVarus : 가능한 것처럼 보이지 않습니다. 이 옵션은 참조 된 어셈블리의 유형에 대한 컴파일이 작동하지만 런타임에 참조 된 어셈블리가 TRUSTED_PLATFORM_ASSEMBLIES에 추가되지 않아 찾을 수 없습니다. 후부의 주요 통증. – Wout

관련 문제