Segmentação do .NET Framework 4.5 via Visual Studio 2010

Hoje eu instalei o .NET Framework 4.5 na minha máquina esperando poder usá-lo a partir do Visual Studio 2010, já que é apenas uma pequena atualização que não deve representar problemas para o Visual Studio 2010. Infelizmente não estou, mesmo removendo manualmente alguns 4.0 e adicionar os 4.5 conjuntos correspondentes resultou nos conjuntos 4.0 originais ainda sendo referenciados no projeto.

É possível direcionar a versão 4.5 do Visual Studio 2010 e, se sim, como? Eu realmente gostaria de usar as fitas …

Cada versão do Visual Studio anterior ao Visual Studio 2010 está vinculada a uma estrutura .NET específica. (O VS2008 é .NET 3.5, o VS2005 é .NET 2.0, o VS2003 é .NET1.1) O Visual Studio 2010 e posteriores permitem o direcionamento de versões de framework anteriores, mas não podem ser usados ​​em versões futuras. Você deve usar o Visual Studio 2012 para utilizar o .NET 4.5.

Existem cenários bastante limitados em que posso pensar onde isso seria útil, mas vamos supor que você não pode obter fundos para comprar VS2012 ou algo nesse sentido. Se for esse o caso e você tiver o Windows 7+ e o VS 2010, talvez consiga usar o seguinte hack que eu criei, que parece funcionar (mas ainda não implementei completamente um aplicativo usando esse método).

  1. Faça o backup do seu arquivo de projeto !!!

  2. Baixe e instale o Windows 8 SDK, que inclui o .NET 4.5 SDK.

  3. Abra seu projeto no VS2010.

  4. Crie um arquivo de texto em seu projeto chamado Compile_4_5_CSharp.targets com o seguinte conteúdo. (Ou apenas faça o download aqui – Certifique-se de remover a extensão “.txt” do nome do arquivo):

         TARGETTING_FX_4_5   $(DefineConstants);TARGETTING_FX_4_5   v4.5      $(AvailablePlatforms),.NET 4.5   
  5. Descarregue seu projeto (clique com o botão direito -> descarregar).

  6. Edite o arquivo do projeto (clique com o botão direito -> Editar * .csproj).

  7. Faça as seguintes alterações no arquivo de projeto:

    uma. Substitua o Microsoft.CSharp.targets padrão pelo arquivo de destino criado na etapa 4

         

    b. Alterar a plataforma padrão para o .NET 4.5

        .NET 4.5 

    c. Adicione a plataforma AnyCPU para permitir a segmentação de outras estruturas, conforme especificado nas propriedades do projeto. Isso deve ser adicionado logo antes da primeira tag no arquivo

      AnyCPU  . . .  . . . 
  8. Salve suas alterações e feche o arquivo *.csproj .

  9. Recarregue seu projeto (clique com o botão direito -> Recarregar Projeto).

  10. No gerenciador de configuração (Build -> Configuration Manager), verifique se a plataforma “.NET 4.5” está selecionada para o seu projeto.

  11. Ainda no gerenciador de configuração, crie uma nova plataforma de solução para “.NET 4.5” (você pode basear-se em “Qualquer CPU”) e certifique-se de que “.NET 4.5” esteja selecionado para a solução.

  12. Construa seu projeto e verifique se há erros.

  13. Supondo que a construção foi concluída, você pode verificar se está segmentando 4.5, adicionando uma referência a uma class específica 4.5 ao seu código-fonte:

     using System; using System.Text; namespace testing { using net45check = System.Reflection.ReflectionContext; } 
  14. Quando você compila usando a plataforma “.NET 4.5”, a compilation deve ser bem-sucedida. Quando você compila sob a plataforma “Any CPU” você deve obter um erro do compilador:

     Error 6: The type or namespace name 'ReflectionContext' does not exist in the namespace 'System.Reflection' (are you missing an assembly reference?) 

FYI, se você quiser criar um pacote Installer no VS2010, infelizmente ele só tem como alvo o .NET 4. Para contornar isso, você deve adicionar o NET 4.5 como uma condição de boot.

Adicione o seguinte às condições de boot do instalador (clique com o botão direito, visualizar, iniciar condições).

Em “Search Target Machine”, clique com o botão direito e selecione “Add Registry Search”.

 Property: REGISTRYVALUE1 RegKey: Software\Microsoft\NET Framework Setup\NDP\v4\Full Root: vsdrrHKLM Value: Release 

Adicionar nova “condição de lançamento”:

 Condition: REGISTRYVALUE1>="#378389" InstallUrl: http://www.microsoft.com/en-gb/download/details.aspx?id=30653 Message: Setup requires .NET Framework 4.5 to be installed. 

Onde:

378389 = .NET Framework 4.5

378675 = .NET Framework 4.5.1 instalado com o Windows 8.1

378758 = .NET Framework 4.5.1 instalado no Windows 8, Windows 7 SP1 ou Windows Vista SP2

379893 = .NET Framework 4.5.2

Referência de condição de boot: http://msdn.microsoft.com/pt-br/library/vstudio/xxyh2e6a(v=vs.100).aspx

Eu tenho lutado com integração VS2010 / DNFW 4.5 e finalmente consegui este trabalho. A partir do VS 2008, foi introduzido um cache de assemblies que é usado pelo Visual Studio chamado de “Assemblies Referenciados”. Esse cache de arquivos para o VS 2010 está localizado em \ Referência Assemblies \ Microsoft \ Framework.NetFramework \ v4.0. Visual Studio carrega assemblies de estrutura deste local em vez do diretório de instalação da estrutura. Quando a Microsoft diz que o VS 2010 não suporta DNFW 4.5, o que eles querem dizer é que esse diretório não é atualizado quando o DNFW 4.5 é instalado. Depois de replace os arquivos neste local pelos arquivos atualizados do DNFW 4.5, você descobrirá que o VS 2010 funcionará felizmente com o DNFW 4.5.

De outra pesquisa. Trabalhou para mim!

“Você pode usar o Visual Studio 2010 e suportá-lo, desde que seu SO ofereça suporte ao .NET 4.5.

Clique com o botão direito na sua solução para adicionar uma referência (como você faz). Quando a checkbox de diálogo aparecer, selecione navegar e navegue até a seguinte pasta:

C: \ Arquivos de Programas (x86) \ Assemblies de Referência \ Microsoft \ Framework \ .Net Framework \ 4.5

Você vai encontrá-lo lá “.