공유 코드를 즉, 어떤 코드를 복제 할 필요없이 다양한 플랫폼을 대상으로 클래스 라이브러리를 생성 할 수있는 기능을 제공하지만, 일부의 #if 필요할 수 있습니다 프로젝트는 핵심 프로젝트에서 참조 할 수 없기 때문에 공유 프로젝트를 사용하여 나에게 적합하지 않았습니다.
그러나 약간의 트릭을 사용하면 효과를 낼 수 있습니다.
날이 폴더/파일 구조로 설명하게하십시오 : 핵심 프로젝트, 일반 .NET 프로젝트 및 공유 프로젝트 :
[ProjectName] // Root of Core project
project.json
[ProjectName].xproj
Shared // Root of Shared project
[ProjectName].Shared.projitems
[ProjectName].Shared.shproj
// -- Source files here --
Net // Root of .NET project
[ProjectName].csproj
Properties
AssemblyInfo.cs // For both Core and .NET project
// NO source files here
그래서, 당신은 물론 3 개 프로젝트가 필요합니다.
공유 프로젝트에는 모든 원본 파일이 있습니다.
.NET 프로젝트는 공유 프로젝트를 참조하므로 해당 파일도 있습니다.
핵심 프로젝트에는 공유 프로젝트에있는 모든 파일이 있으므로 동일한 파일도 있습니다.
그게 전부입니다. 이제 .NET 및 Core 프로젝트에 대한 공통 소스 코드 파일을 가질 수 있습니다.
몇 가지 참고 사항 :
- 이제까지 같은 폴더에
.shroj
과 .csproj
을 넣어하지 마십시오. 저에게는 VS (2015)에서 인텔리 센스가 완전히 꺼졌습니다. 이 정보는
당신은 미세 조정 공통 코드
- 또한 위의 폴더 구조와 .NET 프로젝트에서 NuGet 2를 사용할 수 있습니다에게로
#if
-s를 사용할 수 있습니다 ... 나를 위해 많은 고통을 비용이 산정.
- 주, 당신은 (NuGet 3)
project.json
가있는 같은 폴더에 (NuGet 2) packages.config
를 넣어 줄 경우, 후자는 완전히 이전 버전을 덮어 쓸 것이다. 당신은 ".NET 표준"뭐라고
, 당신은 의미합니까 이전 닷넷 프레임 워크 또는 새 [닷넷 플랫폼 표준 (https://github.com/dotnet/corefx/blob/master /Documentation/architecture/net-platform-standard.md)? 닷넷 코어 라이브러리를 얼마나 정확하게 만들었습니까? – svick
@svick yes는 "이전".net 프레임 워크입니다. aspnetcore rc2와 함께 제공되는 템플릿을 사용하여 .net 핵심 라이브러리 생성 – developer9969