web-dev-qa-db-fra.com

'Forms' n'est pas un membre de 'Windows'

J'ai récemment essayé de changer le Framework cible sur mon application de .NET Framework 4.5 à 4.5.2, mais le message d'erreur suivant s'affiche lorsque j'essaie de générer: "'Forms' n'est pas un membre de 'Windows'" ( est, System.Windows.Forms). Passer à la version 4.5.1 fonctionne normalement. J'utilise Visual Studio 2013 Ultimate.

14
andre_ss6

J'ai eu cette erreur en passant à 4.5.2. 

Dans mon cas, l'erreur était liée à un MessageBox ... J'ai remplacé: "Windows.Forms.DialogResult.Yes" (qui provoquait le même message d'erreur) par "System.Windows.Forms.DialogResult.Yes" qui a fait l'affaire.

26
user3967313

J'ai eu le même problème, moi aussi avec les valeurs d'énumération Windows.Forms.DialogResult.

Le projet importe automatiquement les espaces de noms System et System.Windows.Forms et a parfaitement fonctionné jusqu'au 4.5.1.

Dans 4.5.2 je devais supprimer Windows.Forms. et laisser simplement DialogResult.Ok (ou quoi que ce soit d'autre) dans mon code, cela semble être un problème de résolution des espaces de noms.

7
Stefano Leoni

Je me suis heurté à cela avec une application toujours ciblée sur .NET 4.0, où elle a échoué sur un (nouveau) serveur de construction, mais sur mes anciens.

Je l'ai réduit au pack de ciblage .NET 4.0 installé uniquement sur les anciens serveurs de build. Le pack de ciblage est inclus dans Visual Studio ou dans le SDK Windows 7.1. Pour une raison quelconque, il n’est pas distribué séparément, et avec fin du support technique pour .NET 4, 4.5 et 4.5.1 , je ne pense pas que cela risque de changer. Étant donné que mes serveurs les plus anciens existent depuis quelques années, ils ont déjà fait l'objet de mises à niveau sur place, tout comme le pack de ciblage.

Lorsque vous installez Windows 7.1 SDK sur Server 2012R2, vous constatez que "Une version préliminaire de .NET 4 est installée, veuillez installer la version RTM" ". Autant que je sache, c'est simplement parce qu'une version plus récente) est installée - le serveur 2012R2 est livré avec la version 4.5.1. J'ai essayé de désinstaller toutes les versions plus récentes, mais je n'ai pas pu obtenir le SDK pour installer le pack de ciblage.

Donc pour installer:

Vous devriez maintenant avoir un dossier %programfiles(x86)%\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\ avec les trucs 4.0.

(EXTUI = 1 contourne la restriction selon laquelle il ne peut pas être installé séparément ). 

Cela m'a permis de compiler des projets ciblant toujours la version 4.0 (ou de reconstruire d'anciennes révisions/branches qui la ciblaient à l'époque).

2
gregmac

Assurez-vous que vous ajoutez System devant le Windows.Form.

1
krishna chaithanya