Isso aparece quando você pressiona F1 na caixa de diálogo Framework and References:
Por padrão, para novos projetos, a estrutura de destino é definida como .NET Framework 4. O IDE não oferece suporte à modificação da estrutura de destino, mas você pode alterá-lo manualmente. No arquivo do projeto (.vcxproj), a estrutura de destino padrão é representada pelo elemento de propriedade v4.0. Para alterar a estrutura de destino, descarregue o projeto, use um editor de texto para abrir o arquivo do projeto e altere o valor do elemento de propriedade da v4.0 para outra versão instalada no servidor. Por exemplo, se você especificar a v3.5, que representa o .NET Framework v3.5, o Visual Studio 2008 SP1 deverá estar instalado . Salve e feche o arquivo, recarregue o projeto e verifique se a estrutura de destino é exibida na página de propriedades. *
Isso não é muito preciso em projetos convertidos; você precisará adicionar o <TargetFrameworkVersion>
elemento por conta própria. Coloque-o no PropertyGroup chamado "Globals":
<PropertyGroup Label="Globals">
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<others...>
</PropertyGroup>
A história é diferente quando você usa o VS2012 e superior, a primeira versão do VS que adquiriu a configuração Platform Toolset na página de propriedades Geral. Você deve selecionar "v90" para obter uma compilação adequada que atinja 3.5. No entanto, é desajeitado, você deve ter todas as versões intermediárias do VS instaladas na máquina para ter essa seleção disponível.
Por que você precisa do VS2008 instalado requer uma explicação por si só. O principal problema é que a biblioteca de tempo de execução C (msvcrt100.dll e superior) contém código .NET para oferecer suporte à execução gerenciada de código. O detalhe crucial é um inicializador de módulo que garante que o CRT seja inicializado corretamente no programa que usa o código C ++ / CLI. Esse código sempre tem como alvo o .NET 4 e, como é embutido no msvcrt100.dll (e acima), você sempre tem uma dependência bastante forte do tempo de execução da v4.0.30319. Você só pode ter uma dependência pura da v2.0.50727 ao usar o tempo de execução C antigo, msvcrt90.dll. Você só pode ter certeza de que possui uma dependência msvcrt90.dll ao usar os arquivos #include do VS2008 do compilador.
Embora seja bastante necessário mudar para o .NET 4 em breve, você terá problemas de compilação como esse, se não o fizer. Existem muito poucos obstáculos práticos para isso, o .NET 4 está amplamente disponível gratuitamente em todos os destinos que você imagina. Superar o FUD associado à mudança para uma versão de tempo de execução mais alta geralmente é apenas o problema real. Não há razões para medo e dúvida, é estável.