Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 5개 있습니다.)
(시리즈 글이 4개 있습니다.)
.NET Framework: 975. .NET Core를 직접 호스팅해 (runtimeconfig.json 없이) EXE만 배포해 실행
; https://www.sysnet.pe.kr/2/0/12427

.NET Framework: 992. C# - .NET Core 3.0 이상부터 제공하는 runtimeOptions의 rollForward 옵션
; https://www.sysnet.pe.kr/2/0/12471

.NET Framework: 1165. .NET Core/5+ 빌드 시 runtimeconfig.json에 설정을 반영하는 방법
; https://www.sysnet.pe.kr/2/0/12983

.NET Framework: 2096. .NET Core/5+ - PublishSingleFile 유형에 대한 runtimeconfig.json 설정
; https://www.sysnet.pe.kr/2/0/13265




.NET Core/5+ 빌드 시 runtimeconfig.json에 설정을 반영하는 방법

예전에 아래의 옵션을 소개해 드렸는데요,

C# - .NET Core 3.0 이상부터 제공하는 runtimeOptions의 rollForward 옵션
; https://www.sysnet.pe.kr/2/0/12471

아마도 이 옵션을 설정하기 위해, 빌드한 결과물에서 직접 runtimeconfig.json 파일을 열어 편집하지는 않을 것입니다. 현실적으로는, 빌드 과정 중에 처리되도록 csproj에 다음과 같은 노드를 추가하는 식일 텐데요,

<!-- https://learn.microsoft.com/en-us/dotnet/core/versions/selection#control-roll-forward-behavior -->

<PropertyGroup>
  <RollForward>Major</RollForward>
</PropertyGroup>

이 외에도 기존 닷넷 프레임워크의 app.settings처럼 프로젝트에 runtimeconfig.template.json 이름의 파일을 추가해 설정하는 것도 가능합니다.

Example runtimeconfig.template.json file
; https://learn.microsoft.com/en-us/dotnet/core/runtime-config/#example-runtimeconfigtemplatejson-file

문제는 이 파일의 형식이 runtimeconfig.json과 일치하지 않는다는 점입니다. 그래서 (저처럼 ^^;) 무심코 다음과 같이 설정하면,

{
  "runtimeOptions": {
    "tfm": "netcoreapp3.0",
    "rollForward": "Major",
    "framework": {
      "name": "Microsoft.NETCore.App",
      "version": "3.0.0"
    }
  }
}

빌드 후 생성되는 runtimeconfig.json 파일에는 이렇게 내용이 포함됩니다.

{
  "runtimeOptions": {
    "tfm": "netcoreapp3.0",
    "framework": {
      "name": "Microsoft.NETCore.App",
      "version": "3.0.0"
    },
    "rollForward": "Major"
  },
  "runtimeOptions": {
    "tfm": "netcoreapp3.0",
    "rollForward": "Major",
    "framework": {
      "name": "Microsoft.NETCore.App",
      "version": "3.0.0"
    }
  }
}

전혀 원치 않는 결과죠? 게다가 저런 경우 첫 번째 발견한 runtimeOptions의 설정을 사용합니다. "Example runtimeconfig.template.json file" 문서를 잘 읽어보시면 이것의 원인을 찾을 수 있습니다.

If you're placing the options in the template JSON file, omit the runtimeOptions property.

그렇습니다. ^^; "runtimeOptions" 내부의 설정에서 필요한 것만 포함하면 되는 것입니다.

{
    "rollForward": "Major"
}




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 2/18/2023]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 31  32  33  34  35  36  37  38  39  40  41  42  [43]  44  45  ...
NoWriterDateCnt.TitleFile(s)
12577정성태3/26/202111433개발 환경 구성: 559. Docker Desktop for Windows 기반의 Kubernetes 구성 - WSL 2 인스턴스에 kind 도구로 k8s 클러스터 구성
12576정성태3/25/20219269개발 환경 구성: 558. Docker Desktop for Windows에서 DockerDesktopVM 기반의 Kubernetes 구성 (2) - k8s 서비스 위치
12575정성태3/24/20218265개발 환경 구성: 557. Docker Desktop for Windows에서 DockerDesktopVM 기반의 Kubernetes 구성
12574정성태3/23/202112418.NET Framework: 1030. C# Socket의 Close/Shutdown 동작 (동기 모드)
12573정성태3/22/202110189개발 환경 구성: 556. WSL 인스턴스 초기 설정 명령어 [1]
12572정성태3/22/20219728.NET Framework: 1029. C# - GC 호출로 인한 메모리 압축(Compaction)을 확인하는 방법파일 다운로드1
12571정성태3/21/20218872오류 유형: 706. WSL 2 기반으로 "Enable Kubernetes" 활성화 시 초기화 실패 [1]
12570정성태3/19/202113178개발 환경 구성: 555. openssl - CA로부터 인증받은 새로운 인증서를 생성하는 방법
12569정성태3/18/202112137개발 환경 구성: 554. WSL 인스턴스 export/import 방법 및 단축 아이콘 설정 방법
12568정성태3/18/20217625오류 유형: 705. C# 빌드 - Couldn't process file ... due to its being in the Internet or Restricted zone or having the mark of the web on the file.
12567정성태3/17/20219050개발 환경 구성: 553. Docker Desktop for Windows를 위한 k8s 대시보드 활성화 [1]
12566정성태3/17/20219430개발 환경 구성: 552. Kubernetes - kube-apiserver와 REST API 통신하는 방법 (Docker Desktop for Windows 환경)
12565정성태3/17/20216851오류 유형: 704. curl.exe 실행 시 dll not found 오류
12564정성태3/16/20217332VS.NET IDE: 160. 새 프로젝트 창에 C++/CLI 프로젝트 템플릿이 없는 경우
12563정성태3/16/20219286개발 환경 구성: 551. C# - JIRA REST API 사용 정리 (3) jira-oauth-cli 도구를 이용한 키 관리
12562정성태3/15/202110490개발 환경 구성: 550. C# - JIRA REST API 사용 정리 (2) JIRA OAuth 토큰으로 API 사용하는 방법파일 다운로드1
12561정성태3/12/20219097VS.NET IDE: 159. Visual Studio에서 개행(\n, \r) 등의 제어 문자를 치환하는 방법 - 정규 표현식 사용
12560정성태3/11/202110345개발 환경 구성: 549. ssh-keygen으로 생성한 개인키/공개키 파일을 각각 PKCS8/PEM 형식으로 변환하는 방법
12559정성태3/11/20219844.NET Framework: 1028. 닷넷 5 환경의 Web API에 OpenAPI 적용을 위한 NSwag 또는 Swashbuckle 패키지 사용 [2]파일 다운로드1
12558정성태3/10/20219297Windows: 192. Power Automate Desktop (Preview) 소개 - Bitvise SSH Client 제어 [1]
12557정성태3/10/20218004Windows: 191. 탐색기의 보안 탭에 있는 "Object name" 경로에 LEFT-TO-RIGHT EMBEDDING 제어 문자가 포함되는 문제
12556정성태3/9/20217214오류 유형: 703. PowerShell ISE의 Debug / Toggle Breakpoint 메뉴가 비활성 상태인 경우
12555정성태3/8/20219312Windows: 190. C# - 레지스트리에 등록된 DigitalProductId로부터 라이선스 키(Product Key)를 알아내는 방법파일 다운로드2
12554정성태3/8/20219084.NET Framework: 1027. 닷넷 응용 프로그램을 위한 PDB 옵션 - full, pdbonly, portable, embedded
12553정성태3/5/20219593개발 환경 구성: 548. 기존 .NET Framework 프로젝트를 .NET Core/5+ 용으로 변환해 주는 upgrade-assistant, try-convert 도구 소개 [4]
12552정성태3/5/20218777개발 환경 구성: 547. github workflow/actions에서 Visual Studio Marketplace 패키지 등록하는 방법
... 31  32  33  34  35  36  37  38  39  40  41  42  [43]  44  45  ...