라이브러리는 컴파일 대상에 없는 API를 직접 사용할 수 없습니다. FSharp.Core 11은 netstandard2.0 및 netstandard2.1와 함께 net10.0 빌드를 추가하여 이전 대상 지원을 중단하지 않고 최신 .NET API를 사용할 수 있습니다.
대상별 API 및 동작
빌드는 다양한 API 및 구현을 노출할 수 있습니다. 타기팅 결정은 최신 대상을 명시적으로 선택합니다. 컴파일러의 개발 대상을 자동으로 따르지 않습니다.
프로젝트에서 사용하는 빌드가 무엇인가요
NuGet은 각 프로젝트 대상에 대해 가장 적합한 호환 에셋을 선택합니다. .NET 10 이상 프로젝트는 lib/net10.0/FSharp.Core.dll를 선택할 수 있습니다. 이전 호환 대상은 .NET 표준 자산을 선택합니다.
가용성을 진단하려면:
- 확정된 FSharp.Core 패키지 버전을 확인합니다.
-
obj/project.assets.json에서 선택한 컴파일 및 런타임 자산을 검사합니다. - 해당 참조 어셈블리뿐만 아니라 애플리케이션을 실행하는 런타임을 확인합니다.
<LangVersion>preview</LangVersion>는 컴파일러 동작을 활성화합니다. 누락된 Core 멤버를 추가하지 않고, 다른 패키지 자산을 선택하지 않으며, 런타임 지원을 제공하지 않습니다.
차이점 예시
| Area | Core 11의 가용성 |
|---|---|
| ValueTask 도우미 및 관련 오버로드 |
netstandard2.1 및 net10.0에서는 사용할 수 있지만 netstandard2.0에서는 사용할 수 없습니다. |
경계 유지 Array2D.map, mapi및 copy |
net10.0 빌드는 최신 .NET 할당 API를 사용합니다. .NET 표준 빌드는 폴백을 유지합니다. |
| 런타임 비동기 반환 인트린식 | 빌드에서 노출되며, 컴파일러, 언어, 참조 및 런타임 요구 사항도 적용됩니다. |
자세한 내용은 비동기 및 태스크 함수 및 Array2D 및 Native AOT를 참조하세요. 일반 비동기/작업 도우미와 print/printn는 세 가지 빌드에서 모두 사용할 수 있습니다.
F# 대화형 및 비동기 리소스 해제
F# 작업 식은 호환되는 컴파일된 프로젝트에서 IAsyncDisposable 리소스를 이미 지원합니다.
F# 11 패키징 수정은 F# Interactive에 최신 Core 빌드를 제공하므로 동등한 use 코드와 use! 코드도 여기서 작동합니다. 애플리케이션의 패키지 참조만 업데이트하는 것이 아니라 도구 집합을 업데이트합니다.
런타임 비동기는 별도의 런타임 계약(contract)입니다.
Core 빌드의 net10.0 대상은 런타임 비동기 지원을 지원하지 않습니다.
런타임 비동기 실험에 있는 별도의 컴파일러, 참조 및 런타임 요구 사항을 따르세요.
또한, 다음을 참조하세요.
.NET