· RustDesk Team · Lançamento  · 2 min de leitura

Como executar o Flutter 3.24 no Windows 7?

O Flutter deixou de oferecer suporte ao Windows 7 / 8 na versão 3.22; precisamos modificar o Flutter Engine.

Como executar o Flutter 3.24 no Windows 7?

Recentemente adotamos o Flutter 3.24.5 no RustDesk, que deixou de funcionar no Windows 7. Para resolver o problema, modificamos o Flutter Engine.

Solução para o Flutter 3.24.5 no Windows 7

Flutter e Dart anunciaram que Dart 3.3 e Flutter 3.19 seriam as últimas versões compatíveis com Windows 7 e 8. Para usar o Flutter 3.24.5, precisamos reverter algumas alterações do Dart.

Link: Anúncio oficial

1. Corrigir Platform.localHostname em ambientes chineses

O Dart usava gethostname, fazendo Platform.localHostname falhar nesses ambientes. Depois adotou GetHostNameW, disponível apenas a partir do Windows 8. Para o Windows 7, essa mudança deve ser revertida, embora isso afete Platform.localHostname em ambientes chineses.

Issue: Platform.localHostname fails on Chinese Windows

2. Restaurar o tratamento de registros de unwinding

O Dart tratava a ausência de RtlAddGrowableFunctionTable no Windows 7, mas essa compatibilidade foi removida. É necessário reverter o commit correspondente.

Commit: Remove Windows7 handling of unwinding records API

A correção do Dart alterou File::GetType usando PathCchCombineEx, disponível apenas a partir do Windows 8. Essa alteração também deve ser revertida.

Commit: Fix a bug where relative symlinks to directories did not work on Windows

Conclusão

Executar o Flutter 3.24.5 no Windows 7 exige reverter mudanças importantes do Dart. Isso afeta Platform.localHostname em ambientes chineses e links simbólicos relativos, mas é necessário para quem depende do Windows 7.

Veja a implementação em nosso CI e como aplicamos o motor modificado.

Compartilhar:
Voltar ao blog

Publicações relacionadas

Ver todas as publicações »
Prévia do cliente Web RustDesk V2

Prévia do cliente Web RustDesk V2

A V2 oferece codecs melhores, suporte a teclado internacional, suporte à área de transferência e transferência de arquivos, entre outros recursos.