'Forms' не входит в 'Windows'

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

Ответ 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 для установки пакета таргетинга.

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

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

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

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

Ответ 4

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