2017-02-15 1 views
1

.NET 4.5.2의 일부 라이브러리를 사용하는 경우 asp.net 핵심 응용 프로그램을 배포 할 수 있다면 wonderinf입니다. 내가 ASP를 사용하는 다른 섹션에서ASP.NET을 전체 .NET으로 배포

"frameworks": { 
    "net452": { 
     "frameworkAssemblies": { 
     "System.ServiceModel": "" 
     }, 
     "dependencies": { 
     } 
    }, 
    "netcoreapp1.1": { 
     "dependencies": { 
     "Microsoft.NETCore.App": { 
      "type": "platform", 
      "version": "1.1.0" 
     } 
     }, 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ] 
    } 
    } 

:

내가이 "프레임 워크"섹션에서 전체 .NET 에서 내 project.json로 제공 SyndicationFeed를 사용하여 내 응용 프로그램에서, 내 문제를 설명하기 위해 . 코어 패키지는 다음과 같습니다 :

"Microsoft.EntityFrameworkCore.Design": "1.1.0", 
"Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final", 
"Hangfire.AspNetCore": "1.6.8", 

이상.

그래서 IIS에 배포하는 것이 좋습니다. ASP.CORE 또는 전체 .NET으로 실행하여 서버에 배포해야합니까?

+0

신디케이트 피드를 수동으로 가져올 수 없습니까? 우리가 한 것은 dotPeek를 사용하여 비 dotnet 코어 패키지의 코드를 디 컴파일하고 em dotnet을 유사하게 만드는 것입니다.대부분 패키지 당 1/2 시간 밖에 걸리지 않았습니다. (예 : 나는 구름을 위해 이것을했다) –

답변

1

요컨대, 가능합니다. 그러나 전체 .NET Framework가 필요합니다 (서버에서).

긴 이야기 :

projects.jsonframeworks를 갖는 효과적으로 편집/출판시 (netcoreapp1.1 다른 net462 하나) 두 개의 서로 다른 응용 프로그램을 만듭니다. 이것은 동일한 소스 코드의 다른 프레임 워크 용으로 컴파일 된 두 가지 응용 프로그램입니다.

먼저 실행하려면 (net462의 경우) .NET Framework가 설치된 컴퓨터가 필요합니다. 기타 (netcoreapp 용)에는 .NET 코어가 설치되어 있어야합니다. "교환"(net462 -build 앱을 .NET Core에 실행하거나 그 반대로 실행).

당신의 앱을 보면 project.json 귀하의 앱이 성공적으로 컴파일 될 수 없다고 생각합니다. 앱이 작동하려면 System.ServiceModel이 필요합니다. 하지만 net462에서만 사용할 수 있습니다. 즉, 컴파일하는 동안 net462에 대한 첫 번째 app이 성공적으로 컴파일되고 두 번째 net netcoreapp는 실패 (클래스를 찾을 수 없음, 네임 스페이스를 찾을 수 없음 등)해야합니다.

프로젝트/솔루션 폴더의 명령 줄에서 dotnet build 또는 dotnet publish을 실행하십시오. 오류가 있습니까?

따라서 .NET 코어에서 사용할 수없는 패키지/클래스가 필요한 경우 .NET Core에서 만들거나 빌드하거나 실행할 수 없습니다.

가능한 해결책 :

  • 은 (조엘이 말한대로) 호환되도록 기존 netcore 호환 (있는 경우 나도 몰라), 또는 재 빌드 (포트)에 대한 패키지를 교체;
  • 이 패키지를 완전히 제거하십시오 (필요한 코드를 직접 구현하십시오).
  • 대상 지정 안 함 netcoreapp1.1;
  • 이 패키지를 사용하는 조건부 컴파일 (#if)을 추가하면 net462 - 버전의 앱에서만 사용할 수 있습니다. 그렇지 않은 경우 (#else) NotImplementedException, null 결과 또는 다른 내용 (종속 됨)을 추가합니다. 컴파일 후 앱을 효과적으로 사용할 수 있습니다. 전체 기능은 net462이고 제한 기능은 netcoreapp입니다.
관련 문제