Я открыл свое решение vs2010 с помощью vs2012, но оно не преобразовывалось, так как происходило с 2008 по 2010 год. Так что мое решение по-прежнему остается таким же, как 10 метка на нем. когда я делаю новое решение, конечно, на нем есть 11 меток. У меня нет проблем с запуском, но мне любопытно. Есть ли разница? если да, то как преобразовать в решение vs2012?
Visual Studio 2012 не конвертирует решение vs2010?
Ответы (10)
Есть некоторые исключения, но в основном вы сможете открыть одинаковые файлы проектов и решений как в VS2012, так и в VS2010 SP1.
VS2012 может преобразовывать проекты при первом их открытии, но изменения (за исключением указанных в связанном документе) обратно совместимы с VS2010 (т. е. с использованием условных выражений там, где это необходимо для применения только к любой версии при загрузке) Большинство проектов однако типы останутся совершенно нетронутыми.
Мне удалось «преобразовать» файл решения, чтобы изменить строку, содержащую «# Visual Studio 2010», на «# Visual Studio 2012» в файле .SLN.
Ручное редактирование файла решения не требуется и не рекомендуется. Просто откройте решение VS2010 в VS2012, щелкните решение левой кнопкой мыши (в самом верху обозревателя решений), затем используйте File | Сохранить как, чтобы перезаписать исходный файл. Это эффективно преобразует файл решения VS2010 в файл решения VS2012.
Речь идет о совместимости с Visual Studio 2012.
Если вы создали ресурсы в Visual Studio 2010 с пакетом обновления 1 (SP1), многие из них будут загружаться и работать в Visual Studio 2012 без каких-либо дополнительных действий с вашей стороны.
Многие ресурсы также будут снова открываться в Visual Studio 2010 с пакетом обновления 1 (SP1) без каких-либо проблем, даже после того, как вы откроете эти ресурсы в Visual Studio 2012.
Для проектов C++ это имеет значение, так как компилятор 2012 (VC11) будет использоваться только в проектах, явно относящихся к 2012, а не в проектах 2010, открытых в VS 2012. Некоторые улучшения C++11 доступны с компилятором VC11, но не с VC10 (см. это SO Answer для сводки), в том числе:
- Циклы for на основе диапазона
- Новые стандартные заголовки библиотек (atomic, mutex, thread,...)
- Меньшие размеры стандартных контейнеров библиотек
- (И больше, чтобы следовать, когда CTP за ноябрь 2012 г. будет доставлен в VS 2012)
Чтобы преобразовать проект VS 2010 в VS2012, нет необходимости вручную редактировать файл решения или «Сохранить как» поверх существующего проекта. Вместо:
Если вы отклоните обновление при первом появлении запроса, вы можете обновить проект позже, открыв меню Проект и выбрав Обновить проекты VC++... [в верхней части меню ]
Из MSDN "Как обновить проекты Visual C++ до Visual Studio 2012"
(Эта страница была связана с ссылка MSDN, но я хотел получить ответ здесь, на SO, поскольку в ряде других ответов предлагались обходные пути вручную вместо этой функции VS 2012)
В моем случае у меня были некоторые вещи Visual Source Safe (мой проект был создан с помощью Visual Studio 2003/2005, да, очень старой!)
Как только я вручную удалил материал VSS, преобразование прошло успешно. PS: я знаю, что речь идет о VS2010, но, возможно, это поможет другим.
Вы можете преобразовать проект из VS2010 в VS2012, выполнив следующие действия:
Добавьте проект 2010 в свое решение VS2012, щелкнув правой кнопкой мыши свое решение в обозревателе решений и выбрав Добавить --> Существующий проект...
Проект появится в решении, и к его имени будет добавлено (Visual Studio 2010).
Щелкните правой кнопкой мыши добавленный проект и выберите «Свойства».
На панели «Свойства конфигурации» -> «Общие» измените параметр в поле «Набор инструментов платформы» на Visual Studio 2012 (v110).
Повторите для каждого типа конфигурации, например. Выпуск и отладка.
Я столкнулся с этим вопросом, когда искал решение конкретной проблемы: MSBuild не удалось выполнить цель публикации для решения VS2012, которое зародилось в VS2010 при вызове из командной строки (в частности, через TeamCity):
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Windows Azure Tools\2.3\Microsoft.WindowsAzure.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
MSBuild искал цели Azure SDK 2.3 в расположении VS10 (C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\Windows Azure Tools\2.3\Microsoft.WindowsAzure.targets). Причина объясняется Сайедом Ибрагимом Хашими в сообщении в блоге и, как я понял, это сводится к некоторым решениям, которые они приняли, включив совместимость между версиями для файлов решений. Решение было простым: добавьте свойство VisualStudioVersion в вызов MSBuild, примерно так:
msbuild.exe MyAwesomeWeb.sln /p:VisualStudioVersion=11.0
На практике это переопределяет следующее в каждом файле csproj:
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
Предположительно, вы могли бы получить тот же результат, отредактировав все это вручную, чтобы заменить 10.0 на 11.0, но это может нарушить обратную совместимость — я не пробовал. Я также не пробовал обновлять VS2013, чтобы увидеть, сохраняется ли проблема.
Итак, чтобы завершить это, ответив на вопрос: да, есть некоторые различия, прежде чем вы «конвертируете» (используя любой из методов, предлагаемых другими ответчиками), и некоторые различия остаются после этого.
Это немного отличается, но в том же духе, поэтому, если это кому-то поможет:
Я загружал проект, который выглядел так, как будто он загружался, а затем продолжал показывать все проекты как недоступные. В отчете о миграции ошибок не было. Я много раз пытался перезагрузить решение и проекты, используя различные методы, включая предложения здесь.
Наконец, я нашел параметр «Устранить ошибки», щелкнув правой кнопкой мыши решение в обозревателе решений. VS снова прошел процесс загрузки, и все заработало; Нет проблем.
Я не знаю, что в тот раз было по-другому, но, видимо, это имело значение.
это просто, просто отредактируйте файл .sol, измените версию на 11
так
Файл решения Microsoft Visual Studio, формат версии 12.00
Visual Studio 2012