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