Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Uma biblioteca não pode usar diretamente APIs indisponíveis no alvo de compilação. O FSharp.Core 11 adiciona uma build net10.0 ao lado de netstandard2.0 e netstandard2.1, portanto, pode usar APIs modernas do .NET sem descartar destinos mais antigos.
Comportamento e APIs específicas de destino
Os builds podem expor apis e implementações diferentes. A decisão de direcionamento seleciona o alvo moderno explicitamente; ele não segue automaticamente o alvo de desenvolvimento do compilador.
Qual compilação o seu projeto usa
O NuGet seleciona o ativo compatível mais próximo para cada destino do projeto. Projetos do .NET 10 e posteriores podem selecionar lib/net10.0/FSharp.Core.dll; destinos compatíveis anteriores selecionam um ativo do .NET Standard.
Para diagnosticar a disponibilidade:
- Verifique a versão do pacote FSharp.Core resolvida.
- Inspecione os ativos de compilação e runtime selecionados em
obj/project.assets.json. - Verifique o runtime que executa o aplicativo, não apenas seus assemblies de referência.
<LangVersion>preview</LangVersion> permite o comportamento do compilador. Ele não adiciona membros Core ausentes, não seleciona um ativo de pacote diferente nem fornece suporte em tempo de execução.
Exemplos das diferenças
| Area | Disponibilidade no Core 11 |
|---|---|
| Auxiliares do ValueTask e sobrecargas relacionadas | Disponível em netstandard2.1 e net10.0, não netstandard2.0. |
Preservação de limites Array2D.map, mapi e copy |
O net10.0 build usa uma API de alocação do .NET mais recente; os builds .NET Standard mantêm seu fallback. |
| Intrínsecos de retorno assíncrono de Runtime-async | Exposto pelo net10.0 build; os requisitos de compilador, idioma, referência e runtime também se aplicam. |
Para obter detalhes, consulte Async e as funções de tarefa e Array2D e Native AOT. Auxiliares assíncronos/tarefas comuns e print/printn estão disponíveis em todos os três builds.
Descarte interativo e assíncrono do F#
Expressões de tarefa F# já dão suporte IAsyncDisposable a recursos em projetos compilados compatíveis. A correção de empacotamento F# 11 fornece o build do Core moderno para o F# Interactive, de modo que o código equivalente use e use! também funciona lá. Atualize o conjunto de ferramentas, não apenas a referência de pacote de um aplicativo.
Runtime assíncrono é um contrato de runtime separado
O alvo do build Core net10.0 não estabelece suporte assíncrono de runtime. Siga os requisitos separados de compilador, referência e runtime em Experimentos assíncronos de runtime.