Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Uma biblioteca não pode usar diretamente APIs não disponíveis no seu destino de compilação. O FSharp.Core 11 adiciona uma net10.0 compilação juntamente com netstandard2.0 e netstandard2.1, podendo assim usar APIs .NET modernas sem eliminar alvos mais antigos.
APIs e comportamento específicos do alvo
As compilações podem expor diferentes APIs e implementações. A decisão de definição do destino seleciona explicitamente o destino moderno; não segue automaticamente o destino de compilação do compilador.
Que build é utilizada pelo teu projeto
O NuGet seleciona o recurso compatível mais próximo para cada estrutura de destino do projeto. Projetos .NET 10 e posteriores podem selecionar lib/net10.0/FSharp.Core.dll; alvos compatíveis mais antigos selecionam um ativo .NET Standard.
Para diagnosticar a disponibilidade:
- Verifique a versão resolvida do pacote FSharp.Core.
- Inspecione os ativos selecionados de compilação e runtime em
obj/project.assets.json. - Verifique o runtime utilizado para executar a aplicação, não apenas as suas assembleias de referência.
<LangVersion>preview</LangVersion> permite o comportamento do compilador. Não adiciona membros Core em falta, não seleciona um asset de pacote diferente nem fornece suporte em tempo de execução.
Exemplos das diferenças
| Area | Disponibilidade no Core 11 |
|---|---|
| Helpers do ValueTask e sobrecargas relacionadas | Disponível em netstandard2.1 e net10.0, não netstandard2.0. |
Que preserva os limites Array2D.map, mapi e copy |
A compilação net10.0 utiliza uma API de alocação .NET mais recente; as compilações .NET Standard mantêm a sua alternativa. |
| intrinsics de retorno assíncrono em tempo de execução | Exigidos pela net10.0 compilação; requisitos de compilador, linguagem, referência e de runtime também se aplicam. |
Para mais detalhes, veja Assíncrono e funções de tarefa e Array2D e AOT nativo. Helpers Async/Task comuns e print/printn estão disponíveis em todas as três versões.
F# Interativo e libertação assíncrona
As expressões de tarefas F# já suportam recursos IAsyncDisposable em projetos compilados compatíveis. A correção de empacotamento do F# 11 fornece a versão moderna do Core para o F# Interactive, por isso o código equivalente use e use! também funciona aí. Atualize o conjunto de ferramentas, não apenas a referência do pacote da aplicação.
O runtime assíncrono é um contrato de execução separado
O alvo da versão Core net10.0 não estabelece suporte assíncrono em tempo de execução. Siga os requisitos separados de compilador, referência e tempo de execução nas experiências assíncronas do Runtime.