Измените проект C++ / CLI на другую структуру, чем 4.0 с помощью vs2010


поскольку я обновил свой проект до формата проекта visual studio 2010, мой проект C++/CLI ориентирован на .net framework 4.0.

легко переключить версию фреймворка на другую версию из проекта C#, но я понятия не имею, как это сделать в проекте C++/CLI, я не вижу настройки для этого на страницах свойств проекта.

4 148

4 ответа:

это отображается при нажатии клавиши F1 в диалоговом окне фреймворк и ссылки:

по умолчанию для новых проектов целевой фреймворк имеет значение .NET Framework 4. Среда IDE не поддерживает изменение целевой платформы, но ее можно изменить вручную. В файле проекта (.vcxproj), целевая платформа по умолчанию представлена элементом свойства v4.0. Чтобы изменить целевую платформу, выгрузите проект, откройте файл проекта с помощью текстового редактора, а затем измените значение элемента property с v4. 0 на другую версию, установленную на вашем сервере. Например, если указать v3.5, представляющий .NET Framework v3. 5, Visual Studio 2008 SP1 должен быть установлен. Сохраните и закройте файл, перезагрузите проект и убедитесь, что целевая платформа отображается на странице свойств.*

это не очень точно для преобразованных проектов, вам придется добавить <TargetFrameworkVersion> элемент. Положите его в группа свойств с надписью "глобалы":

  <PropertyGroup Label="Globals">
    <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
    <others...>
  </PropertyGroup>

история отличается, когда вы используете VS2012 и выше, первую версию VS, которая приобрела настройку набора инструментов платформы на странице общих свойств. Затем вы должны выбрать "v90", чтобы получить правильную сборку, предназначенную для 3.5. Однако это неуклюже, вы должны иметь все промежуточные версии VS, установленные на машине, чтобы иметь этот выбор.

почему вам нужно VS2008 установлен требует объяснения себя. Основная проблема заключается в том, что библиотека времени выполнения C (msvcrt100.dll и выше) содержит .NET-код для поддержки выполнения управляемого кода. Важной деталью является инициализатор модуля, который обеспечивает правильную инициализацию CRT в программе, использующей код C++/CLI. Этот код всегда нацелен на .NET 4 и поскольку он жестко запечен в msvcrt100.dll (и выше) у вас всегда есть жесткая зависимость от среды выполнения v4.0.30319. Вы можете иметь только чистую зависимость v2.0.50727 при использовании старой среды выполнения C, msvcrt90.файл DLL. Вы можете быть уверены только в том, что у вас есть msvcrt90.зависимость dll при использовании компилятора #include файлы VS2008.

холодный жесткий факт, что довольно необходимо перейти на .NET 4 в ближайшее время, вы будете бороться с проблемами сборки, как это, если вы этого не сделаете. есть очень мало практических препятствий для этого, .NET 4 широко доступен бесплатно на всех целевых объектах, которые вы себе представляете. Преодоление FUD, связанного с переходом на более высокую версию среды выполнения, как правило, является только реальным вопрос. Нет причин для страха и сомнений, он стабилен.

да можно изменить цель даже для управляемых проектов C++:

изменение целевой платформы .NET Framework для C++ / CLI (VS 2010) для изменения версия платформы .NET Framework для Проекты C++ / CLI (VS 2010)

Правой Кнопкой Мыши на проект в решение Проводник и нажмите кнопку выгрузить проект Щелкните правой кнопкой мыши на выгруженном проекте в Обозреватель решений и выберите Изменить <projectname>.vcxproj в xml-файле проекта файл найдите узел <PropertyGroup Label="Globals"> в этом узле найти узел <TargetFrameworkVersion> (Если узел не может быть найден, добавьте его) внутренний текст узла определяет цель рамки. Это может быть V2.0,В3.0, В3.5 или V4. 0 сохраните файл vcxproj и закройте его Щелкните правой кнопкой мыши на выгруженном проекте в Обозреватель решений и нажмите кнопку Перезагрузить пример проекта <TargetFrameworkVersion>v3.5</TargetFrameworkVersion>

примечание: эти шаги применяются только для Visual Studio 2010 как он использует новые формат файлов проекта C++.

источник на MSDN: как изменить целевой .NET Рамки

анонимный пользователь:

(редактирование, поскольку я новый пользователь и не могу ответить на это, кто бы это ни видел, не стесняйтесь отправлять следующее) изменение набора инструментов на v100 фактически приводит к тому, что VS2010 нацеливается на .NET 4.0, хотя он все равно будет отображаться как целевой 3.5 в свойствах проекта. VS2010 действительно должен выплюнуть предупреждение об этом, потому что в настоящее время он выглядит так, как вы, хотя вы можете настроить .NET 3.5 с помощью набора инструментов v100, который вы не можете.

в VS 2010, если набор инструментов установлен, перейдите в свойства проекта- > свойства конфигурации - >общие и измените набор инструментов платформы с v90 на v100.