«Формы» не являются членами «Windows»

Недавно я пытался изменить целевую платформу в своем приложении с .NET Framework 4.5 на 4.5.2, но если я это сделаю, при попытке сборки я получаю следующую ошибку: «Forms» не является членом «Windows» (что есть, System.Windows.Forms). Переход на 4.5.1 работает нормально. Я использую Visual Studio 2013 Ultimate.


person andre_ss6    schedule 09.05.2014    source источник
comment
4.5.2? Это бета или RC?   -  person Tim    schedule 10.05.2014
comment
Нет, это официальный релиз, 4 дня назад.   -  person andre_ss6    schedule 10.05.2014


Ответы (4)


У меня была эта ошибка при переходе на 4.5.2.

В моем случае ошибка была связана с MessageBox... Я заменил: «Windows.Forms.DialogResult.Yes» (что вызвало то же сообщение об ошибке) на «System.Windows.Forms.DialogResult.Yes», ​​что помогло.

person user3967313    schedule 22.08.2014

У меня была такая же проблема, я тоже со значениями перечисления Windows.Forms.DialogResult.

Проект автоматически импортирует пространства имен System и System.Windows.Forms и нормально работал до 4.5.1.

В 4.5.2 мне пришлось удалить Windows.Forms. и просто оставить DialogResult.Ok (или что-то еще) в моем коде, похоже, это проблема с разрешением пространств имен.

person Stefano Leoni    schedule 14.04.2015

Убедитесь, что вы добавили System перед Windows.Form.

person krishna chaithanya    schedule 20.08.2015
comment
Некоторое разъяснение шагов было бы полезно здесь. - person Chase; 20.08.2015

Я столкнулся с этим с приложением, все еще ориентированным на .NET 4.0, где оно не удалось на одном (новом) сервере сборки, но работало на моих старых.

Я сузил его до .NET 4.0 Targeting Pack, который устанавливается только на старых серверах сборки. Пакет таргетинга входит в состав Visual Studio или Windows 7.1 SDK. Он почему-то отдельно не распространяется, а с окончание поддержки для .NET 4, 4.5 и 4.5.1, я не подозреваю, что это может измениться. Поскольку моим старым серверам уже около пары лет, они прошли обновления на месте и уже имели пакет таргетинга.

Когда вы устанавливаете Windows 7.1 SDK на Server 2012R2, он жалуется на что-то вроде «Установлена ​​предварительная версия .NET 4, установите версию RTM». Насколько я могу судить, это просто потому, что установлена ​​более новая версия — Server 2012R2 поставляется с 4.5.1. Я попытался удалить все более новые версии, но не смог получить SDK для установки пакета таргетинга.

Итак, чтобы установить:

Теперь у вас должна быть папка %programfiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\ с материалом 4.0.

(EXTUI=1 обходит ограничение, что он не может быть устанавливается отдельно).

Это позволило мне компилировать проекты, все еще нацеленные на 4.0 (или пересобирать старые ревизии/ветки, которые в то время были нацелены на нее).

person gregmac    schedule 11.04.2016