Implantação do CRT Universal
Do Visual Studio .NET ao Visual Studio 2013, cada versão principal das ferramentas e do compilador C++ incluía uma nova versão autônoma da biblioteca CRT (Runtime do Microsoft C). Essas versões autônomas do CRT eram independentes e, até certo ponto, incompatíveis entre si. Por exemplo, a biblioteca CRT usada pelo Visual Studio 2012 era a versão 11, chamada msvcr110.dll, e o CRT usado pelo Visual Studio 2013 era a versão 12, chamada msvcr120.dll. Do Visual Studio 2015 em diante, isso deixou de acontecer. O Visual Studio 2015 e todas as versões posteriores do Visual Studio usam um CRT Universal.
O UCRT (CRT Universal) é um componente do sistema operacional Microsoft Windows. Ele é incluído como parte do sistema operacional em Windows 10 ou posterior e Windows Server 2016 ou posterior. O UCRT está disponível usando Windows Update em sistemas operacionais mais antigos que ainda têm suporte estendido. Há suporte para a implantação local do CRT Universal, com algumas restrições.
Implantação central
O método preferencial para instalar centralmente o CRT Universal é usar o Microsoft Windows Update. O CRT Universal é que uma atualização Recomendada para todos sistemas operacionais Microsoft Windows compatíveis e, assim, por padrão, a maioria dos computadores instala-o como parte do processo de atualização normal. A versão inicial do CRT Universal foi KB2999226. Uma atualização posterior com várias correções de bugs foi feita em KB3118401 e houve mais atualizações com outras correções de bugs e novos recursos. Para obter atualizações mais recentes, pesquise support.microsoft.com
para "Runtime Universal C" ou "CRT Universal".
Nem todos os computadores Microsoft Windows instalam atualizações regularmente pelo uso do Windows Update, e alguns podem não instalar todas as atualizações Recomendadas. Para dar suporte ao uso de aplicativos compilados usando o Visual Studio 2015 e conjuntos de ferramentas C++ posteriores nesses computadores, há arquivos redistribuíveis do CRT Universal disponíveis para distribuição offline. Esses arquivos redistribuíveis podem ser baixados em um dos links da KB acima. Os arquivos redistribuíveis do CRT Universal exigem que o computador tenha sido atualizado para o service pack atual. Assim, por exemplo, os pacotes redistribuíveis do Windows 7 serão instalados apenas no Windows 7 SP1, não no Windows 7 RTM.
O CRT Universal é uma dependência fundamental das bibliotecas C++. O Pacote Redistribuível do Visual C++ (VCRedist) instala a versão inicial do CRT Universal (versão 10.0.10240) em computadores que ainda não têm um instalado. Essa versão é suficiente para atender às dependências da biblioteca C++. Se o aplicativo depender de uma versão mais recente do CRT Universal, você deverá usar Windows Update para atualizar totalmente o computador. Ou instale essa versão do UCRT explicitamente. É melhor instalar o Universal C Runtime usando Windows Update ou uma MSU antes de instalar o VCRedist. Essa ordem de instalação pode ajudar a evitar várias reinicializações necessárias.
Nem todos os sistemas operacionais são qualificados para o Runtime Universal C mais recente por meio de Windows Update. Em Windows 10 ou Windows 11, a versão implantada centralmente corresponde à versão do sistema operacional. Para atualizar ainda mais o Runtime Universal C, você deve atualizar o sistema operacional. Para o Windows Vista por meio de Windows 8.1, o Runtime Universal C disponível mais recente baseia-se na atualização de aniversário do Windows 10 (versão 10.0.14393).
Implantação local
Há suporte para a implantação local do CRT Universal, mas isso não é recomendado por motivos de desempenho e de segurança. As DLLs para implantação local são incluídas como parte do SDK do Windows no subdiretório Windows Kits\10\Redist\ucrt\DLLs
, pela arquitetura do computador. As DLLs necessárias incluem ucrtbase.dll
e um conjunto de DLLs do encaminhador de APISet denominado api-ms-win-*.dll
. O conjunto de DLLs necessário em cada sistema operacional varia. É altamente recomendável incluir todas as DLLs ao implantar localmente.
Há duas restrições na implantação local a serem consideradas:
No Windows 10 e Windows 11, o CRT Universal no diretório do sistema sempre é usado, mesmo se um aplicativo inclui uma cópia local do aplicativo do CRT Universal. É verdade mesmo quando a cópia local é mais recente, porque o CRT Universal é um componente principal do sistema operacional no Windows 10 e posterior.
Versões do Windows antes de Windows 8: o CRT Universal não pode ser empacotado localmente com um plug-in, se ele estiver localizado em qualquer lugar, menos no diretório executável do aplicativo principal. As DLLs do encaminhador de APISet não podem resolver a
ucrtbase.dll
com êxito nesse caso. Algumas soluções alternativas recomendadas incluem:- Vincular o CRT Universal estaticamente;
- Implantar o CRT Universal centralmente; ou
- Colocar os arquivos do CRT Universal no mesmo diretório do aplicativo.
Implantação no Microsoft Windows XP
Os conjuntos de ferramenta Visual Studio 2015 e o Visual Studio 2017 continuam dando suporte ao desenvolvimento de software para uso no Microsoft Windows XP. Existe uma versão do CRT Universal para o Microsoft Windows XP. O sistema operacional Microsoft Windows XP não está mais no suporte principal ou estendido. Portanto, a implantação central do CRT Universal no Microsoft Windows XP é diferente de outros sistemas operacionais.
Quando o Pacote Redistribuível do Visual C++ é instalado no Windows XP, ele instala diretamente o CRT Universal e todas as suas dependências no diretório do sistema. Ele não instala nem depende de nenhum atualização do Windows. Os módulos de mesclagem dos Pacotes Redistribuíveis, os arquivos Microsoft_VC<version>_CRT_<target>.msm
fazem o mesmo.
A implantação local do CRT Universal no Windows XP é a mesma usada nos sistemas operacionais compatíveis.
Importante
O suporte à biblioteca de runtime para Windows XP não está mais disponível nos Pacotes Redistribuíveis do Visual C++ para Visual Studio 2015, 2017, 2019 e 2022. O último redistribuível para dar suporte ao Windows XP é a versão 16.7 (versão 14.27.29114.0). Se seus aplicativos do Windows XP forem implantados ou atualizados para uma versão posterior do pacote redistribuível, os aplicativos não serão executados. Para mais informações e saber como obter uma versão do redistribuível que tenha suporte para Windows XP, consulte Configurar programas para o Windows XP.