IT박스

.NET Core RC2에서 .exe 파일 빌드

itboxs 2020. 10. 22. 07:49
반응형

.NET Core RC2에서 .exe 파일 빌드


새로운 .NET Core RC2 템플릿을 사용하여 프로젝트를 빌드 할 때마다 runnable이 제공 되지 않습니다 . EXE 파일. 콘솔 응용 프로그램을 디버깅하기 위해 F5 키를 누르면

C:\Program Files\dotnet\dotnet.exe 

신청. 그리고 내가 사용한다면

dotnet run 

폴더에서 명령을 실행하면 잘 실행됩니다. 하지만 .NET Core CLI 도구 없이는 애플리케이션을 실행할 방법이 없습니다.

나의 내용

 bin\Debug\netcoreapp1.0\

폴더는 다음과 같습니다.

Bin 폴더 구조

보시다시피. EXE 파일을 사용할 수 있습니다. 단지 dll.

내가 뭔가를 간과하고 있습니까? 아니면 내 project.json 파일에 문제가 있습니까?

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true
  },

  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0-rc2-3002702"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }
  }
}

감사!


.NET Core에는 실제로 두 가지 앱 모델이 있습니다.

  • 휴대용 앱 : "DNX 콘솔 앱"에서 크게 영감을받은 이러한 앱은 .exe파일을 생성하지 않고 대신 .NET Core 공유 런타임에 의해 실행됩니다 ( Microsoft.NETCore.App특수 type: platform속성 덕분에 해당 버전은 패키지에 의해 정의 됨 ). 휴대용 앱을 사용할 수 있으려면 해당 .NET Core 런타임이 머신에 설치되어 있어야합니다. 정확한 버전을 찾을 수없는 경우를 실행할 때 예외가 발생합니다 dotnet run.

  • 독립형 앱 : 독립형 앱은 .exe파일 을 생성한다는 점에서 기존의 .NET 콘솔 앱과 정말 유사 합니다. .NET Core 런타임은 애플리케이션 자체에 직접 포함되기 때문에 컴퓨터에 설치할 필요가 없습니다.

현재 첫 번째 모델을 사용하고 있습니다. 독립형 모델을 사용하려면 다음을 조정해야합니다 project.json.

  • runtimes앱이 대상으로하는 환경을 나열 하는 섹션을 추가합니다 (예 : win7-x64또는 ubuntu.14.04-x64). 여기 에서 전체 목록을 찾을 수 있습니다 .
  • Microsoft.NETCore.App종속성을 제거하십시오 . 대신이 패키지로 교체 할 수 있습니다 "NETStandard.Library": "1.5.0-rc2-24027"..

다음은 독립형 앱의 예입니다.

{
  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true,
    "warningsAsErrors": true
  },

  "dependencies": {
    "Microsoft.Extensions.Configuration.Binder": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.CommandLine": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final",
    "Microsoft.Extensions.DependencyInjection": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging": "1.0.0-rc2-final",
    "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final",
    "NETStandard.Library": "1.5.0-rc2-24027"
  },

  "frameworks": {
    "net451": { },

    "netcoreapp1.0": {
      "dependencies": {
        "System.Net.Ping": "4.0.0-rc2-24027"
      },

      "imports": [
        "dnxcore50",
        "dotnet5.6",
        "portable-net451+win8"
      ]
    }
  },

  "runtimes": {
    "win7-x64": { }
  }
}

대답은 지금 완전한 단계 가있는 문서 에 있습니다.

.NET Core 애플리케이션에 대해 두 가지 유형의 배포를 만들 수 있습니다.

  1. 프레임 워크 종속 배포
  2. 자체 포함 된 배포

실행 가능한 .EXE 파일의 경우 자체 포함 배포를 사용해야합니다.


To create a runnable application from a .NET Core console application you can use the dotnet tool. Just run in your project directory:

dotnet publish --runtime win7-x64

This creates a standalone app (self-contained deployment; includes all necessary libraries consuming at least 60MB on your disk). Of course you can also choose other runtimes, like osx.10.11-x64 or ubuntu.16.04-x64.

If you used the default configuration (New Project -> Console App (.NET Core)), there is no modification of any configuration file necessary.


step 1: remove "type": "platform", from Project.json under frameworks section

step 2: add run time section to your project.json. Note each section is separeted by a comma. Add your runtime. below is just an example for win 10.

"runtimes": {
       "win10-x64": {}      
     }

3 단계 : 프로젝트에서 dotnet restore 명령. (cmd를 열고 src 폴더가있는 프로젝트 폴더로 이동하여 dotnet restor를 실행합니다.)

4 단계 : 4 dotnet pack단계 : dotnet build -r win10-x64-또는 그냥 빌드합니다.

5 단계 : debug / netcore / win10 / 아래에 생성 된 .exe를 확인할 수 있습니다.


다음 에서 ASP.NET Coretypedefault,으로 변경해보십시오 project.json.

"Microsoft.NETCore.App": {
  "type": "default",
  "version": "1.0.0-*"
}

참고 URL : https://stackoverflow.com/questions/37390798/build-exe-file-in-net-core-rc2

반응형