2016-10-31 1 views
3

나는 cross-platform 인 dotnet core app를 사용하고 있습니다.NodaTime은 NetCoreApp 1.0과 호환됩니까?

API 프로젝트 : 여기

System.IO.FileNotFoundException: Could not load file or assembly 'NodaTimestrong text, Version=2.0.0.0, Culture=neutral, PublicKeyToken=4226afe0d9b296d1'. The system cannot find the file specified. 
     File name: 'NodaTime, Version=2.0.0.0, Culture=neutral, PublicKeyToken=4226afe0d9b296d1' 
     at project.ef.CalendarHelper.ValidateTimeZone(String timezoneTypeName) 
     at project.ef.CalendarHelper. 

프로젝트 설정 파일입니다 : 내 프로젝트에 유틸리티로 노다을 사용하지만 nodatime 내 프로젝트 종속성으로 정의에도 그래도 다음과 같은 오류가 발생하고 싶었다

{ 
    "buildOptions": { 
    "preserveCompilationContext": true, 
    "emitEntryPoint": true, 
    "warningsAsErrors": true, 
    "debugType": "portable", 
    "copyToOutput": { 
     "include": [ 
     "config.json", 
     "Certificate.pfx" 
     ] 
    } 
    }, 
    "dependencies": { 
    "AspNet.Security.OAuth.Introspection": "1.0.0-alpha2-final", 
    "AspNet.Security.OAuth.Validation": "1.0.0-alpha2-final", 
    "Microsoft.AspNetCore.Diagnostics": "1.0.0", 
    "Microsoft.AspNetCore.Mvc": "1.0.0", 
    "Microsoft.AspNetCore.Mvc.Formatters.Json": "1.0.0", 
    "Microsoft.AspNetCore.Mvc.Cors": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", 
    "Microsoft.Extensions.Configuration.CommandLine": "1.0.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0", 
    "Microsoft.EntityFrameworkCore.Design": { 
     "type": "build", 
     "version": "1.0.0-preview2-final" 
    }, 
    "Microsoft.NETCore.App": "1.0.0", 
    "project.ef": "1.0.0-*" 
    }, 
    "tools": { 
     "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final" 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ "portable-dnxcore50+net45+win8+wp8+wpa81" ] 
    } 
    }, 
    "publishOptions": { 
    "include": [ 
     "config.json" 
    ] 
    }, 
    "runtimes": { 
     "win10-x64": {}, 
     "osx.10.11-x64": {}, 
     "ubuntu.14.04-x64": {} 
    } 
} 

EF 프로젝트

{ 
    "dependencies": { 
    "NETStandard.Library": "1.6.0", 
    "Npgsql.EntityFrameworkCore.PostgreSQL": "1.0.1", 
    "Npgsql.EntityFrameworkCore.PostgreSQL.Design": "1.0.1",  
    "project.Internal.ERP": "1.1.0-*", 
    "project.models": "1.0.0-*", 
    "NodaTime": "2.0.0-alpha-*" 
    }, 
    "frameworks": { 
    "netstandard1.6": { 
     "imports": [ 
     "dnxcore50", 
     "portable-net451+win8" 
     ] 
    } 
    } 
} 
+0

종속성은 어떻게 생깁니 까? 2.0.0-alpha20160729는 가져 오기없이 netcoreapp1.0을 사용하여 정상적으로 작동해야합니다. –

+0

https://www.nuget.org/packages/NodaTime/2.0.0-alpha20160729 - netstandard1.1을 타겟팅하므로 잘 될 것입니다. 당신은 당신의 프로젝트를 보여줄 수 있습니까? 패키지 내용을 조사한 결과 NodaTime 만 NodaTime 어셈블리가 포함되어 있지 않습니다. – Pawel

+0

자세한 내용을 포함하도록 제 질문을 수정했습니다. 두 개의 project.json이 있습니다. 하나는 API 용이고 다른 하나는 데이터베이스 논리 용입니다. 내가 참조 할 수있는 어딘가에 게시 된 샘플 dotnet 핵심 프로젝트가 있습니까? @ JonSkeet 아래의 샘플에서 참조하는 1.0.1과 1.0.0을 참조하는 메 시지가 표시 될 수 있습니다. 이 질문에 대한 해결책을 모사하기 위해 NodaTime을 사용하고 있습니다. http://stackoverflow.com/questions/17348807/how-to-translate-between-windows-and-iana-time-zones – chris

답변

4

Noda Time 1.x는 PCL 만 대상으로합니다. netcoreapp1.0 함께 작동하도록 얻을 수 있지만 그것을 보장하지 않을거야.

하지만 Noda Time 2.0은 netstandard1.1을 대상으로하므로 잘되어야합니다. 즉 현재 알파 버전으로 만 사용할 수,하지만 그것을 잘 작동합니다 :

project.json 내용 :

{ 
    "buildOptions": { 
    "emitEntryPoint": true 
    }, 
    "dependencies": { 
    "NodaTime": "2.0.0-alpha20160729" 
    }, 
    "frameworks": { 
    "netcoreapp1.0": { 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.0.1" 
     } 
     } 
    } 
    } 
} 

Program.cs 내용 :

아무런 문제없이 실행
using System; 
using NodaTime; 

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     Console.WriteLine(SystemClock.Instance.GetCurrentInstant()); 
    } 
} 

.

+0

명시 적으로 nodatime 종속성에 대한 버전 번호를 정의하는 것으로 판명 내 문제가 해결되었습니다. 때로는 가장 간단한 솔루션 인 하하 - 감사합니다! – chris

+0

@chris : 이전에 픽업 한 버전을보고 싶을 것입니다.'project.lock.json'을 보면 정확하게 해결 된 의존성을 볼 수 있습니다. –

+0

와우 - 내 너겟 캐시를 살펴 보았는데 이전에 NodaTime.2.0.0-alpha20140807.nupkg를 사용했습니다. 그것을 설명 할 수 있습니다 하하 – chris

관련 문제