[visual-studio-2010] Orientación de .NET Framework 4.5 a través de Visual Studio 2010



1 Answers

Existen situaciones muy limitadas en las que se me ocurre dónde podría ser útil, pero supongamos que no puede obtener fondos para comprar VS2012 o algo por el estilo. Si ese es el caso y tienes Windows 7+ y VS 2010, puedes usar el siguiente truco que armé y que parece funcionar (pero todavía no he implementado por completo una aplicación que use este método).

  1. Respalda tu archivo de proyecto !!!

  2. Descargue e instale el SDK de Windows 8 que incluye .NET 4.5 SDK.

  3. Abra su proyecto en VS2010.

  4. Cree un archivo de texto en su proyecto llamado Compile_4_5_CSharp.targets con los siguientes contenidos. (O simplemente descárguelo here : asegúrese de eliminar la extensión ".txt" del nombre del archivo):

    <Project DefaultTargets="Build"
     xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    
        <!-- Change the target framework to 4.5 if using the ".NET 4.5" configuration -->
        <PropertyGroup Condition=" '$(Platform)' == '.NET 4.5' ">
            <DefineConstants Condition="'$(DefineConstants)'==''">
                TARGETTING_FX_4_5
            </DefineConstants>
            <DefineConstants Condition="'$(DefineConstants)'!='' and '$(DefineConstants)'!='TARGETTING_FX_4_5'">
                $(DefineConstants);TARGETTING_FX_4_5
            </DefineConstants>
            <PlatformTarget Condition="'$(PlatformTarget)'!=''"/>
            <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
        </PropertyGroup>
    
        <!-- Import the standard C# targets -->
        <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
    
        <!-- Add .NET 4.5 as an available platform -->
        <PropertyGroup>
           <AvailablePlatforms>$(AvailablePlatforms),.NET 4.5</AvailablePlatforms>
        </PropertyGroup>
    </Project>
    
  5. Descargue su proyecto (haga clic derecho -> descargar).

  6. Edite el archivo del proyecto (haga clic derecho -> Editar * .csproj).

  7. Realice los siguientes cambios en el archivo de proyecto:

    a. Reemplace el Microsoft.CSharp.targets predeterminado con el archivo de destino creado en el paso 4

    <!-- Old Import Entry -->
    <!-- <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> -->
    
    <!-- New Import Entry -->
    <Import Project="Compile_4_5_CSharp.targets" />
    

    segundo. Cambie la plataforma predeterminada a .NET 4.5

    <!-- Old default platform entry -->
    <!-- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> -->
    
    <!-- New default platform entry -->
    <Platform Condition=" '$(Platform)' == '' ">.NET 4.5</Platform>
    

    do. Agregue la plataforma AnyCPU para permitir orientar otros marcos como se especifica en las propiedades del proyecto. Esto debe agregarse justo antes de la primera etiqueta <ItemGroup> en el archivo

    <PropertyGroup Condition="'$(Platform)' == 'AnyCPU'">
        <PlatformTarget>AnyCPU</PlatformTarget>
    </PropertyGroup>
    
    .
    .
    .
    <ItemGroup>
    .
    .
    .
    
  8. Guarde sus cambios y cierre el archivo *.csproj .

  9. Recargue su proyecto (haga clic derecho -> Recargar proyecto).

  10. En el administrador de configuración (Build -> Configuration Manager), asegúrese de que la plataforma ".NET 4.5" esté seleccionada para su proyecto.

  11. Aún en el administrador de configuración, cree una nueva plataforma de solución para ".NET 4.5" (puede basarla en "Cualquier CPU") y asegúrese de seleccionar ".NET 4.5" para la solución.

  12. Crea tu proyecto y busca errores.

  13. Asumiendo que la compilación se completó, puedes verificar que realmente estás apuntando a 4.5 agregando una referencia a una clase específica de 4.5 a tu código fuente:

    using System;
    using System.Text;
    
    namespace testing
    {
        using net45check = System.Reflection.ReflectionContext;
    }
    
  14. Cuando compila utilizando la plataforma ".NET 4.5", la compilación debe tener éxito. Cuando compila bajo la plataforma "Any CPU", debería obtener un error de compilación:

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

Hoy instalé .NET Framework 4.5 en mi máquina esperando poder usarlo desde Visual Studio 2010, ya que es solo una actualización menor que no debería plantear problemas para Visual Studio 2010. Lamentablemente, no estoy, incluso eliminando manualmente ciertos 4.0 y agregar los ensamblados 4.5 correspondientes dio como resultado que los ensamblados 4.0 originales todavía estén referenciados en el proyecto.

¿Es posible orientar la versión 4.5 desde Visual Studio 2010 y, en caso afirmativo, cómo? Realmente me gustaría usar las cintas ...




He estado luchando con la integración de VS2010 / DNFW 4.5 y finalmente he conseguido que funcione. A partir de VS 2008, se introdujo un caché de ensamblados que Visual Studio utiliza como "Conjuntos referenciados". Este caché de archivos para VS 2010 se encuentra en \ Assemblies \ Microsoft \ Framework.NetFramework \ v4.0 de referencia. Visual Studio carga ensamblajes de marco desde esta ubicación en lugar de desde el directorio de instalación de marco. Cuando Microsoft dice que VS 2010 no es compatible con DNFW 4.5, lo que quieren decir es que este directorio no se actualiza cuando se instala DNFW 4.5. Una vez que haya reemplazado los archivos en esta ubicación con los archivos actualizados de DNFW 4.5, encontrará que VS 2010 funcionará felizmente con DNFW 4.5.




Related