[visual-studio-2010] Ориентация .NET Framework 4.5 с помощью Visual Studio 2010



1 Answers

Есть довольно ограниченные сценарии, которые я могу придумать, где это было бы полезно, но давайте предположим, что вы не можете получить средства на покупку VS2012 или что-то в этом роде. Если это так, и у вас есть Windows 7+ и VS 2010, вы можете использовать следующий взломанный я, который, похоже, работает (но я еще не полностью развернул приложение, используя этот метод).

  1. Резервное копирование файла проекта !!!

  2. Загрузите и установите SDK Windows 8, который включает в себя .NET 4.5 SDK.

  3. Откройте проект в VS2010.

  4. Создайте текстовый файл в вашем проекте с именем Compile_4_5_CSharp.targets со следующим содержимым. (Или просто загрузите его here Обязательно удалите расширение «.txt» из имени файла):

    <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. Выгрузите проект (щелкните правой кнопкой мыши -> выгрузить).

  6. Отредактируйте файл проекта (щелкните правой кнопкой мыши -> Изменить * .csproj).

  7. Внесите следующие изменения в файл проекта:

    а. Замените файл Microsoft.CSharp.targets по умолчанию целевым файлом, созданным на шаге 4

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

    б. Изменение платформы по умолчанию на .NET 4.5

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

    с. Добавьте платформу AnyCPU чтобы разрешить таргетинг других фреймворков, как указано в свойствах проекта. Это должно быть добавлено непосредственно перед первым <ItemGroup> в файле

    <PropertyGroup Condition="'$(Platform)' == 'AnyCPU'">
        <PlatformTarget>AnyCPU</PlatformTarget>
    </PropertyGroup>
    
    .
    .
    .
    <ItemGroup>
    .
    .
    .
    
  8. Сохраните изменения и закройте файл *.csproj .

  9. Перезагрузите проект (щелкните правой кнопкой мыши -> Обновить проект).

  10. В диспетчере конфигурации (Build -> Configuration Manager) убедитесь, что для вашего проекта выбрана платформа .NET 4.5.

  11. Еще в диспетчере конфигурации создайте новую платформу решений для «.NET 4.5» (вы можете использовать ее «Любой процессор») и убедитесь, что для решения выбрано «.NET 4.5».

  12. Создайте свой проект и проверьте наличие ошибок.

  13. Предполагая, что сборка завершена, вы можете проверить, что вы действительно нацелились на 4.5, добавив ссылку на 4,5 конкретных классов в исходный код:

    using System;
    using System.Text;
    
    namespace testing
    {
        using net45check = System.Reflection.ReflectionContext;
    }
    
  14. Когда вы компилируете с использованием платформы .NET 4.5, сборка должна быть успешной. Когда вы компилируете под платформой «Любой процессор», вы должны получить ошибку компилятора:

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

Сегодня я установил .NET Framework 4.5 на своем компьютере, ожидая, что смогу использовать его из Visual Studio 2010, поскольку это просто небольшое обновление, которое не должно создавать проблем для Visual Studio 2010. К сожалению, я даже не вручную удаляю некоторые версии 4.0 и добавление соответствующих сборок 4.5 привело к тому, что исходные сборки 4.0 все еще упоминались в проекте.

Можно ли настроить версию 4.5 с Visual Studio 2010, и если да, то как? Я бы очень хотел использовать ленты ...




Я боролся с интеграцией VS2010 / DNFW 4.5 и, наконец, получил эту работу. Начиная с VS 2008, был введен кеш сборок, который используется Visual Studio под названием «Связанные сборки». Этот кеш-файл для VS 2010 находится в \ Reference Assemblies \ Microsoft \ Framework.NetFramework \ v4.0. Visual Studio загружает сборки фреймов из этого места, а не из каталога установки инфраструктуры. Когда Microsoft заявляет, что VS 2010 не поддерживает DNFW 4.5, это означает , что этот каталог не обновляется при установке DNFW 4.5. После замены файлов в этом месте обновленными файлами DNFW 4.5 вы обнаружите, что VS 2010 с радостью будет работать с DNFW 4.5.




Related