2017-01-07 2 views
1

.NET Core Framework가 아닌 .NET Framework 내에서 자체 ASP.NET exe로 실행되도록 ASP.NET Core Web API를 원합니다. 그게 가능하니? 감사!ASP.NET 핵심 자체 포함 exe

편집 :

내가 project.json 내 프레임 워크 섹션에 "net451": {}를 추가하는 경우, 나는 다음과 같은 예외가 얻을 :

Failed to make the following project runnable: myProject (.NETCoreApp,Version=v1.0) reason: Expected coreclr library not found in package graph. Please try running dotnet restore again. 
+3

대답은 '예'입니다. 나는 "방법"이 함축적이라고 가정합니다 : OWIN을 사용하고 net45를 목표 프레임 워크로 사용하십시오. 그것들은 기술적으로 두 가지 질문이며 검색을하면 쉽게 답변을 찾을 수 있습니다. https://www.codeproject.com/articles/869223/asp-net-web-api-create-a-self-hosted-owin-based-we –

+1

프로젝트에서 ASP.NET 코어 및 대상 net46을 사용하는 경우. json, 당신은 할 일이 없습니다. 그냥''dotnet publish'''를 실행하십시오. 이렇게하면 게시 폴더에 .exe 파일이 생성됩니다. – Kalten

+0

@ Stefanod'Antonio : 자급 자족 할 수있는 자기 호스팅을 혼란스럽게 생각합니다. – Tseng

답변

2

당신은 자체에 포함 된 응용 프로그램을 만들 수있는 .NET Framework> = 4.5는 전체 .NET Framework가 모듈식이 아니며 둘 이상의 버전이 설치되어 있지 않기 때문에 대상입니다. 최신 버전은 기본적으로 항상 이전 버전을 대체합니다.

자가 포함 된 애플리케이션은

당신 은 항상은 .NET이> = 4.5에게 앱을 실행하기 전에 설치해야합니다 (함께 휴대 성) .NET 코어에 대해 하나의 주요 동기였다. 자체 포함 된 응용 프로그램은 .NET 핵심 라이브러리가 nuget 패키지를 통해 가져올 수 있기 때문에 .NET Core에서만 작동합니다.

.NET 4.6의 경우 기본 모드 인 휴대용 앱만 만들 수 있습니다.

+0

.NET <= 4.5를 의미했을 수도 있습니다. – GlennSills

+0

@ GlennSills : 내가 말한 것을 의미했다.) ASP.NET Core는 .NET 4.5에서만 사용할 수있는 System.Runtime을 기반으로합니다. 따라서 ASP.NET Core는 4.5보다 오래된 모든 .NET Framework에서 실행할 수 없습니다. .NET 4.5는 여전히 하나의 모 놀리 식 프레임 워크이며 모듈 방식이 아니기 때문에 병렬로 실행할 수 없습니다. .NET 응용 프로그램을 실행하기 전에 항상 설치해야합니다. .NET 핵심은 다릅니다. 모든 것을 함께 묶어서 (프레임 워크와 응용 프로그램) 응용 프로그램을 압축 해제하면 특정 런타임을 설치하지 않고 작동하게 할 수 있습니다. – Tseng

+0

기본적으로 : Portable Apps =보다 작은 배포 시간의 런타임 설치가 필요합니다. 자체 포함 된 응용 프로그램 = 런타임 설치가 필요하지 않지만 응용 프로그램과 함께 프레임 워크 라이브러리를 배포해야하므로 배포 크기가 커집니다. – Tseng