«Система»: пространство имен с таким именем не существует.

У меня был проект C++, который работал отлично. Теперь я скопировал проект в другую папку и добавил проект в решение приложения WPF.

Теперь проект С++ дает мне много ошибок сборки. Один из них "System' : a namespace with this name does not exist".

Ниже приведены строки, которые создают эту ошибку.

#include "stdafx.h"

using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::CompilerServices;
using namespace System::Runtime::InteropServices;
using namespace System::Security::Permissions;

Приведенные выше строки находятся в файле AssemblyInfo.cpp. У меня нет опыта работы с C++, поэтому мне трудно удалить ошибки. Любая помощь приветствуется. Ниже приведена еще одна ошибка, которая может помочь вам решить проблему.

managed targeted code requires a '/clr' option

Заранее спасибо.


person Narendra    schedule 24.05.2013    source источник
comment
Вы собираетесь писать на C++ для .NET или изначально? Существование System::* ясно показывает, что это проект C++/CLI (а не C++/Win32).   -  person Spook    schedule 24.05.2013
comment
На самом деле C++ имеет собственный код и оболочку, а WPF выполняет пользовательский интерфейс. Я знаю, что это проект С++/CLI. Но почему он выдает ошибки при добавлении в другое решение, поскольку это не зависит от какого-либо другого проекта.   -  person Narendra    schedule 24.05.2013
comment
Проверьте в настройках проекта, знает ли компилятор, что это проект C++/CLI, потому что кажется, что это не так :)   -  person Spook    schedule 24.05.2013
comment
@Spook: Не могли бы вы рассказать, как это проверить?   -  person Narendra    schedule 24.05.2013
comment
Свойства проекта | Свойства конфигурации | Общие | Поддержка общеязыковой среды выполнения. Если проект C++/CLI, должно быть Common Language Runtime Support (/clr).   -  person Spook    schedule 24.05.2013
comment
Спасибо Spook, это позволило мне успешно завершить день.   -  person Narendra    schedule 24.05.2013
comment
Я рад, что смог помочь :)   -  person Spook    schedule 24.05.2013


Ответы (2)


Установите для поддержки Common Language RunTime Support значение Common Language RunTime Support (/clr) в 2 местах в свойствах проекта:

Для Visual Studio до 2019 года:

  • Свойства конфигурации -> Общие
  • Свойства конфигурации -> C/C++ -> Общие

Для Visual Studio 2019:

  • Свойства конфигурации -> Дополнительно -> Свойства C++/CLI
  • Свойства конфигурации -> C/C++ -> Общие
person Mif    schedule 15.12.2013
comment
Была такая же проблема, и это сработало для меня, должно быть помечено как ответ, - person i know nothing; 04.07.2014
comment
Это сработало для меня в Visual Studio 2015, но я изменил свойство только в C/C++ -> General. Я не видел собственность только в целом. - person Luis B; 29.02.2016
comment
Для Visual Studio 2019 перейдите в «Свойства конфигурации» -> «Дополнительно» -> «Свойства C++/CLI» и сделайте это. - person eliasetm; 23.09.2020

Мне было мало, когда я просто изменил Common Language RunTime Support (/clr).

Мне пришлось создать проект в VS, который был бы выделенным проектом для CLR: введите здесь описание изображения

Если вы не видите эту опцию, вы должны сначала добавить ее в установщик VS: введите здесь описание изображения

person Yinon_90    schedule 03.12.2020