Недавно я пытался изменить целевую платформу в своем приложении с .NET Framework 4.5 на 4.5.2, но если я это сделаю, при попытке сборки я получаю следующую ошибку: «Forms» не является членом «Windows» (что есть, System.Windows.Forms
). Переход на 4.5.1 работает нормально. Я использую Visual Studio 2013 Ultimate.
«Формы» не являются членами «Windows»
Ответы (4)
У меня была эта ошибка при переходе на 4.5.2.
В моем случае ошибка была связана с MessageBox... Я заменил: «Windows.Forms.DialogResult.Yes» (что вызвало то же сообщение об ошибке) на «System.Windows.Forms.DialogResult.Yes», что помогло.
У меня была такая же проблема, я тоже со значениями перечисления Windows.Forms.DialogResult
.
Проект автоматически импортирует пространства имен System
и System.Windows.Forms
и нормально работал до 4.5.1
.
В 4.5.2
мне пришлось удалить Windows.Forms.
и просто оставить DialogResult.Ok
(или что-то еще) в моем коде, похоже, это проблема с разрешением пространств имен.
Убедитесь, что вы добавили System
перед Windows.Form
.
Я столкнулся с этим с приложением, все еще ориентированным на .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 для установки пакета таргетинга.
Итак, чтобы установить:
- Загрузите ISO-образ Windows 7.1 SDK
- Разархивируйте его
- Выполнить
Setup\MTPack\netfx_dtp.msi EXTUI=1
Теперь у вас должна быть папка %programfiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\
с материалом 4.0.
(EXTUI=1 обходит ограничение, что он не может быть устанавливается отдельно).
Это позволило мне компилировать проекты, все еще нацеленные на 4.0 (или пересобирать старые ревизии/ветки, которые в то время были нацелены на нее).