Cambie el proyecto de C ++ / CLI a otro marco que 4.0 con vs2010

Desde que actualicé mi proyecto al formato del proyecto visual studio 2010, mi proyecto C ++ / CLI está dirigido a .NET Framework 4.0.

Es fácil cambiar la versión del framework a otra versión desde un proyecto C #, pero no tengo idea de cómo hacer esto en un proyecto C ++ / CLI, no veo ninguna configuración para esto en las páginas de propiedades del proyecto.

Esto aparece cuando presiona F1 en el cuadro de diálogo Marco y Referencias:

De forma predeterminada para nuevos proyectos, el marco de trabajo específico se establece en .NET Framework 4. El IDE no admite la modificación del marco de trabajo específico, pero puede cambiarlo manualmente. En el archivo de proyecto (.vcxproj), el marco de destino predeterminado está representado por el elemento de propiedad v4.0. Para cambiar el marco de trabajo específico, descargue el proyecto, use un editor de texto para abrir el archivo de 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 objective se muestre en la página de propiedades. *

Eso no es muy preciso en proyectos convertidos, tendrá que agregar el elemento usted mismo. Póngalo en el PropertyGroup etiquetado “Globals”:

   v3.5   

La historia es diferente cuando utiliza VS2012 y versiones posteriores, la primera versión de VS que adquirió la configuración Platform Toolset en la página de propiedades General. A continuación, debe seleccionar “v90” para obtener una comstackción adecuada que apunta 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 de 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 asegura que el CRT se inicializa correctamente en el progtwig que usa el código C ++ / CLI. Ese código siempre se dirige a .NET 4 y dado que es difícil de procesar en msvcrt100.dll (y versiones superiores), siempre tiene una gran dependencia en el tiempo de ejecución v4.0.30319. Solo puede tener una dependencia v2.0.50727 pura cuando usa el viejo tiempo de ejecución C, msvcrt90.dll. Solo puede estar seguro de que tiene una dependencia msvcrt90.dll cuando usa los archivos #include del comstackdor de VS2008.

Es un hecho bastante difícil de que es muy necesario pasar a .NET 4 pronto, y tendrás problemas de comstackción como este si no lo haces. Hay muy pocos obstáculos prácticos para eso, .NET 4 está ampliamente disponible de forma gratuita en todos los objectives que imagines. Superar el FUD que está asociado con pasar a una versión de tiempo de ejecución más alta generalmente es solo el problema real. No hay razones para el miedo y la duda, es estable.

Sí, es posible cambiar el objective incluso para proyectos administrados de C ++:

Cambio de Target .NET Framework para C ++ / CLI (VS 2010) Para cambiar la versión de .NET Framework para proyectos de C ++ / CLI (VS 2010)

Haga clic derecho en el proyecto en Solution Explorer y haga clic en Descargar proyecto Haga clic derecho en el proyecto descargado en Solution Explorer y seleccione Editar .vcxproj En el archivo XML del proyecto locate node En ese nodo locate node ( si el nodo no se puede encontrar, agréguelo) El texto interno del nodo define el marco de destino. Puede ser v2.0, v3.0, v3.5 o v4.0 Guardar el archivo vcxproj y cerrarlo Haga clic con el botón derecho en el proyecto descargado en el Explorador de soluciones y haga clic en Volver a cargar el ejemplo del proyecto v3.5

Nota: Estos pasos solo se aplican a Visual Studio 2010 ya que usa un nuevo formato de archivos de proyecto C ++.

Fuente en MSDN: Cómo: cambiar el objective .NET Framework

por un usuario anónimo:

(Editando como soy un nuevo usuario y no puedo responder a esto, quien vea esto, siéntase libre de enviar lo siguiente) Cambiar el conjunto de herramientas a v100 hace que VS2010 se dirija a .NET 4.0, aunque seguirá apareciendo como objective 3.5 en el propiedades del proyecto VS2010 realmente debería escupir una advertencia acerca de esto, porque actualmente parece que usted puede apuntar a .NET 3.5 con el conjunto de herramientas v100, que no puede.

En VS 2010 si el conjunto de herramientas está instalado vaya a project properties-> config properties-> general y cambie Platform Toolset de v90 a v100.