É possível correr a.NET aplicação 4.5 no XP?
Primeiro, li o seguinte:
- ligar a capitalização
- VS capitalização
- e especialmente Este canal 9 post
Não há nenhuma possibilidade de ir para. NET 4.5 se queremos apoiar XP?
a única coisa que eu poderia pensar é criar duas soluções separadas, mas então as codebases teriam que divergir se nós usássemos.net 4.5 características.
Então, estou à procura de uma solução incrível que não consegui encontrar e que outros talvez já saibam.5 answers
A maior diferença não é que visível, a Microsoft fez uma alteração há muito esperada no cabeçalho executável das montagens. Que especifica com que versão do Windows o executável é compatível. O XP pertence a uma geração anterior de Windows, iniciada com o Windows 2000. O número da versão principal é 5. O Vista foi o início da geração atual, maior número de versão 6.
Os compiladores do. NET sempre especificaram o número mínimo de versão como sendo 4.00, a versão do Windows NT e do Windows 9x. você poderá ver isto se executar o dumpbin.exe / cabeçalhos no conjunto. A saída da amostra parece-se com isto:
OPTIONAL HEADER VALUES
10B magic # (PE32)
...
4.00 operating system version
0.00 image version
4.00 subsystem version // <=== here!!
0 Win32 version
...
O que há de novo no. NET 4.5 é que os compiladores mudam a versão do subsistema para 6.00. Uma mudança que foi super-devido em grande parte porque o Windows presta atenção a esse número, além de apenas verificar se ele é pequeno o suficiente. Ele também liga appcompat características desde que assume que o programa foi escrito para trabalhar em versões antigas do Windows. Estas características causam problemas, particularmente a forma como o Windows está sobre o tamanho de uma janela em Aero é problemático. Ele pára de mentir sobre as bordas de gordura de uma janela Aero quando ele pode ver que o programa foi projetado para executar em uma versão do Windows que tem Aero.
Pode alterar o número da versão e voltar a configurá-lo para as 4.00, executando o Editbin.exe nos seus conjuntos com a opção / sub-sistema. esta resposta mostra uma amostra do evento pós-construção.
[[[2]] Isso é no entanto sobre onde as boas notícias terminam, um problema significativo é que. NET 4.5 não é muito compatível com .NET 4.0. De longe, a maior dificuldade é que as aulas foram transferidas de uma assembleia para outra. Mais notavelmente, isso aconteceu com o atributo [Extension]. Anteriormente Em System.Nucleo.dll, foi transferido para Mscorlib.dll in. net 4.5. Isso é um kaboom no XP se você declarar seus próprios métodos de Extensão, seu programa diz para procure no Mscorlib o atributo, activado por um atributo [Typeforwarded to] na versão.net 4.5 do sistema.Central reference assembly. Mas não está lá quando você executa o seu programa no. NET 4.0E claro que não há nada que o ajude a parar de usar classes e métodos que só estão disponíveis no.NET 4.5. Quando o fizer, o seu programa falhará com uma Tipeloadexcepção ou perderá a metodologia quando executar em 4, 0
Apenas o alvo 4.0 e todos estes problemas desaparecem. Ou quebrar esse logjam e parar de apoiar XP, uma decisão de negócios que os programadores não podem muitas vezes fazer, mas certamente pode incentivar, apontando os aborrecimentos que está causando. É claro que há um custo não-zero para ter que suportar sistemas operacionais antigos, apenas o esforço de teste é substancial. Um custo que não é muitas vezes reconhecido pela gestão, compatibilidade com Windows é lendário, a menos que seja apontado para eles. Encaminhe esse custo para o cliente e eles tendem a tomar a decisão certa muito mais rápido: ) mas não podemos ajudá-lo com isso.Infelizmente, não, você não pode executar 4.5 programas em XP.
E a publicação relevante dessa página de ligação:
Publicado pela Microsoft em 23/03/2012 às 10:39
Obrigado pelo relatório. Este comportamento é por design no. NET Framework 4.5 Beta. Os sistemas operacionais mínimos suportados são Windows 7, Windows Server 2008 SP2 e Windows Server 2008 R2 SP1. O Windows XP não é um sistema operacional suportado para a versão Beta.
Tenta mono:
Http://www.go-mono.com/mono-downloads/download.html
Este download funciona em todas as versões do Windows XP, 2003, Vista e Windows 7.
O projecto Mono deixou cair o suporte do Windows XP e "esqueceu" para o mencionar. Embora eles ainda afirmam que o Windows XP SP2 é a versão mínima suportada, é na verdade o Windows Vista.
A última versão do Mono para suportar o Windows XP foi de 3.2.3.
A última versão que suporta o windows XP (SP3) é mono-4.3.2.467-gtksharp-2.12.30.1-win32-0.msi e isso não substitui.net 4.5, mas poderia ser de interesse para algumas aplicações.
Veja ali: https://download.mono-project.com/archive/4.3.2/windows-installer/