Esto aparece cuando presiona F1 en el cuadro de diálogo Marco y referencias:
De forma predeterminada para nuevos proyectos, el marco de destino está configurado en .NET Framework 4. El IDE no admite la modificación del marco de destino, pero puede cambiarlo manualmente. En el archivo del proyecto (.vcxproj), el marco de destino predeterminado está representado por el elemento de propiedad v4.0. Para cambiar el marco de destino, descargue el proyecto, use un editor de texto para abrir el archivo del proyecto y luego cambie el valor del elemento de propiedad de v4.0 a otra versión que esté instalada en su servidor. Por ejemplo, si especifica v3.5, que representa .NET Framework v3.5, se debe instalar Visual Studio 2008 SP1 . Guarde y cierre el archivo, vuelva a cargar el proyecto y verifique que el marco de destino se muestre en la página de propiedades. *
Eso no es terriblemente preciso en proyectos convertidos, tendrá que agregar el <TargetFrameworkVersion>
elemento usted mismo. Póngalo en el PropertyGroup etiquetado "Globals":
<PropertyGroup Label="Globals">
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<others...>
</PropertyGroup>
La historia es diferente cuando usa VS2012 y versiones posteriores, la primera versión de VS que adquirió la configuración de Platform Toolset en la página de propiedades General. Luego debe seleccionar "v90" para obtener una compilación adecuada que apunte a 3.5. Sin embargo, es torpe, debe tener todas las versiones intermedias de VS instaladas en la máquina para tener esa selección disponible.
Por qué necesita VS2008 instalado requiere una explicación por sí mismo. El problema principal es que la biblioteca de tiempo de ejecución C (msvcrt100.dll y superior) contiene código .NET para admitir la ejecución de código administrado. El detalle crucial es un inicializador de módulo que garantiza que la CRT se inicialice correctamente en un programa que usa código C ++ / CLI. Ese código siempre apunta a .NET 4 y, dado que está integrado en msvcrt100.dll (y versiones posteriores), siempre tiene una dependencia dura en el tiempo de ejecución v4.0.30319. Solo puede tener una dependencia pura v2.0.50727 cuando utiliza el antiguo tiempo de ejecución de C, msvcrt90.dll. Solo puede estar seguro de que tiene una dependencia msvcrt90.dll cuando utiliza los archivos #include de VS2008 del compilador.
De hecho, es bastante necesario pasar a .NET 4 pronto, si no lo hace, tendrá problemas de compilación como este. Hay muy pocos obstáculos prácticos para eso, .NET 4 está ampliamente disponible de forma gratuita en todos los objetivos que puedas imaginar. Superar el FUD que está asociado con el cambio a una versión de tiempo de ejecución superior es generalmente solo el problema real. No hay razones para el miedo y la duda, es estable.