Так как я обновил свой проект до Visual Studio формат проекта 2010 года, мой C++ / проект CLI предназначен к платформе .NET 4.0.
Легко переключить версию платформы на другую версию из проекта C#, но у меня нет подсказки, как сделать это в C++ / проект CLI, я не вижу установки для этого на страницах свойства проекта.
Это появляется, когда вы нажимаете F1 в диалоговом окне Framework and References:
По умолчанию для новых проектов целевая платформа установлена на .NET Framework 4. IDE не поддерживает изменение целевой платформы, но вы можете измените его вручную. В файле проекта (.vcxproj) целевая платформа по умолчанию представлена элементом свойства v4.0. Чтобы изменить целевую платформу, выгрузите проект, используйте текстовый редактор, чтобы открыть файл проекта, а затем измените значение элемента свойства с v4.0 на другую версию, установленную на вашем сервере. Например, если вы укажете v3.5, который представляет .NET Framework v3.5, Visual Studio 2008 SP1 должен быть установлен . Сохраните и закройте файл, перезагрузите проект и убедитесь, что целевая платформа отображается на странице свойств. *
Это не очень точно для преобразованных проектов, вам придется добавить
элемент себя. Поместите его в PropertyGroup с пометкой «Globals»:
<PropertyGroup Label="Globals">
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<others...>
</PropertyGroup>
Ситуация отличается, когда вы используете VS2012 и выше, первую версию VS, которая получила настройку Platform Toolset на странице свойств General. Затем вы должны выбрать «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)
Щелкните правой кнопкой мыши проект в Solution Проводник и нажмите "Выгрузить проект". Щелкните правой кнопкой мыши выгруженный проект в Обозреватель решений и выберите Изменить.
В XML проекта узел поиска файла
.vcxproj В этом узле найдите узел
(если узел не может быть найден, добавьте его) Внутренний текст узла определяет цель фреймворк. Это может быть v2.0, v3.0, v3.5 или v4.0 Сохраните файл vcxproj и закройте его Щелкните правой кнопкой мыши выгруженный проект в Обозреватель решений и нажмите "Обновить". Пример проекта
v3.5 Примечание. Эти шаги применимы только для Visual Studio 2010, поскольку он использует новые формат файлов проекта C ++.
Источник на MSDN: Как изменить целевую платформу .NET Framework