Comment déterminer pourquoi Visual Studio peut ignorer des projets lors de la création d'une solution

92

Je débogue le travail de quelqu'un d'autre et la solution est assez volumineuse. Lorsque j'essaie de créer le tout, plusieurs projets de la solution ne se construisent pas et sautent simplement. L'affichage de la fenêtre de sortie pendant le processus de construction indique:

1> ------ Ignoré tout reconstruire: Projet: pr1lib ------

Comment puis-je déterminer pourquoi ces builds ont été ignorés? Je ne parviens pas à trouver de sortie supplémentaire.

C'est avec VS2008 et la solution est composée de code c # et c ++.

Mat
la source
En plus des réponses fournies, assurez-vous que les paramètres de configuration de la solution ont chaque projet dans l'état coché (la case est cochée) qui doit être nettoyé / construit:Build > Configuration Manager: check as needed
Metro Smurf
2
Pour résoudre les raisons pour lesquelles les projets sont ignorés. Assurez-vous d'ajouter /flaux paramètres de construction pour obtenir un fichier msbuild.log qui inclut la raison. Par exemple:skipped, due to false condition; ( ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Any CPU') ) was evaluated as ( ('Debug' == 'Release') and ('AnyCPU' == 'Any CPU') ).
T_D
2
@T_D - où ajouter dans Visual Studio '/ fl'? Où le journal apparaîtrait-il? Si vous ajoutez cela comme réponse, je voterai pour, car la plupart des autres réponses sont diverses suppositions aléatoires pour résoudre le problème plutôt que de répondre à la question d'origine, qui consistait simplement à obtenir plus d'informations sur le problème.
PaulG
@PaulG Voir ma réponse ci-dessous. Définissez simplement les paramètres dans les Options.
Darren Wood

Réponses:

85

Cliquez avec le bouton droit sur la solution, choisissez Propriétés puis Propriétés de configuration. Ici, vous pouvez choisir les projets à construire.

[ modifier ]:
Voir le commentaire de Kdt: ... quand j'ai regardé dans les propriétés de configuration ... la cible de construction du projet a été configurée pour "Plateformes mixtes" alors que la solution était définie pour construire "Tout CPU".

* Quand ce problème m'est arrivé, le projet principal n'avait que 'Any CPU' et il a également défini la DLL enfant sur 'any CPU', cependant, j'avais supprimé ce profil et laissé uniquement 'x86'. Choisir x86 uniquement pour la DLL le fait commencer à fonctionner
[/ edit]

Tchami
la source
20
J'avais une mystérieuse "construction ignorée", et quand j'ai regardé dans les propriétés de configuration, le projet était en effet marqué pour la construction. Cependant, la cible de génération du projet a été configurée pour "Plateformes mixtes" alors que la solution était définie pour générer "N'importe quel processeur" - la modification de ces éléments pour correspondre a résolu le problème.
kdt
2
Dans mon cas, bien que tous les projets et la solution aient tous été définis sur "Any CPU", un projet a ignoré la construction. Ce n'est qu'après avoir défini la solution sur "Plateformes mixtes" puis de nouveau sur "Tout processeur" qu'il construirait. En regardant un diff du fichier de solution avant et après, il est passé de {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPUà {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU. La seule différence est l'espace ajouté entre «Any» et «CPU» à la fin de la ligne.
Simon Tewsi
5
Dans mon cas, tous les projets ont été définis sur "N'importe quel processeur" et le problème a été résolu en supprimant les projets (la suppression du projet ne provoque pas la suppression des fichiers) et en les ajoutant à nouveau à la solution.
Hamid Mayeli
40

J'ai juste eu le même problème: "unload project" et "reload project" ont résolu le problème!

Sharon Ben-Avraham
la source
J'ai le même problème, et le déchargement / rechargement fonctionne, mais le problème semble revenir, ce qui est ennuyeux quand cela arrive à un tas de projets et que vous devez décharger / recharger chacun d'eux ... Tout le monde sait s'il y a un moyen d'éviter cela complètement?
Liron
Cela a résolu le problème pour moi lorsque Visual Studio signalait par erreur des projets comme étant déjà à jour dans la fenêtre de sortie, lors d'une tentative de génération.
Kevin Laity
29

Les opérations de construction, de reconstruction et de nettoyage ont été ignorées. Le déchargement et le rechargement n'ont pas aidé, ni le redémarrage de Visual Studio.

Une fois que j'ai supprimé le projet de la solution et l'ai rajouté, il n'est plus ignoré. Pour le supprimer, dans l'Explorateur de solutions, cliquez avec le bouton droit sur le projet> Supprimer> OK. Pour le rajouter, dans l'Explorateur de solutions, cliquez avec le bouton droit sur la solution> Ajouter> Projet existant et sélectionnez votre projet

user1325179
la source
7
Gardez à l'esprit que vous devrez rajouter toutes les références de projet à ce projet.
Joseph
9

Si la configuration de configuration est x64 et que le compilateur x64 n'est pas installé, il ignorera le projet.

Dave
la source
1
+1 Génie. Vous pouvez trouver SP1 ici: microsoft.com/download/en/details.aspx?id=10986
ashes999
Lorsque le compilateur x64 n'est pas installé, vous ne pouvez même pas sélectionner x64.
Calmarius
La solution et les configurations de projet peuvent définir et utiliser une entrée intitulée «x64». Le 3ème ddl pour l'archive du processeur (cible de la plate-forme - à mi-chemin de la page des propriétés de construction) est celui qui n'est pas disponible
StingyJack
9

Ma solution est la même que celle mentionnée précédemment: Supprimer -> Ajouter un projet existant

Mais cette solution implique que les références entre projets disparaissent

Pour éviter de rajouter des références: et au cas où vous utilisez un système de contrôle de version comme GIT ou TFS ou autre, il est possible d'atteindre l'objectif avec les étapes suivantes:

  1. Assurez-vous que toutes les modifications sont validées / enregistrées avant l'opération

  2. Parcourez tous les projets en les supprimant de la solution et en les ajoutant

  3. Notez que le fichier .sln a changé

  4. Conservez le nouveau fichier .sln, mais annulez les modifications apportées à tous les fichiers .cspoj avec le système de contrôle de version

Andrey K.
la source
6

Le redémarrage de Visual Studio a fait l'affaire

Mohammad Fneish
la source
5

Le studio visuel 2008, cela peut être parce que le compilateur 64 bits n'aurait pas été installé.

Panneau de configuration -> Programmes et fonctionnalités -> Microsoft Visual Studio 2008 Professional -> [double-cliquez]

Sur la boîte de dialogue Visual Studio

Suivant -> Ajouter / supprimer des fonctionnalités -> (sous) Visual C ++ -> (sélectionner) le compilateur et les outils x64

Anish AR
la source
3

Hé, je viens de réparer celui-ci. J'ai pensé que cela pourrait aider. Vous n'avez probablement pas installé les compilateurs correspondants avec le studio visuel. Cela m'est arrivé aujourd'hui - par défaut, le programme d'installation de VS 2008 n'installe pas le compilateur x64 C ++.

Si vous disposez du SP1, désinstallez-le avant de modifier l'installation de VS. Une fois terminé, réinstallez SP1.

Sergey Malgin
la source
3

Le problème existe également dans VS 2010; des solutions proposées: modification de la configuration de construction, nettoyage, changement / re-modification du cadre cible, ne fonctionne PAS. Mais le déchargement et le rechargement du projet le font.

Mark Alsip
la source
2

Allez dans le menu de construction et choisissez "gestionnaire de configuration". Cela montrera quels projets sont configurés pour construire dans la configuration sélectionnée.

1800 INFORMATIONS
la source
2

J'ai eu une chose similaire qui m'est arrivée. Je ne sais pas quel était le problème, mais ce ne serait pas propre , Construire , Reconstruire , etc. Je suis d' exploitation dans Visual Studio 2017 et je voulais un netstandard2.0assemblage. Le problème pour moi était que d'une manière ou d'une autre, le type de projet était incorrect, peut-être que j'ai commencé à partir d'une netcoreappbibliothèque de classes, quelque chose comme ça, coincé dans le fichier Solution , je ne me souviens pas. Quoi qu'il en soit, j'ai sauvegardé le projet, créé un nouveau netstandardprojet de bibliothèque de classes et pris en compte les bits sauvegardés, et cela a résolu le problème pour moi. HTH quelqu'un.

mwpowellhtx
la source
2

J'en ai eu un étrange qui vaut peut-être la peine d'être documenté parmi les autres possibilités ici.

J'avais ajouté un projet partagé à ma solution, avec du code utilisé dans deux ou trois des autres projets. Comme vous le savez, les projets partagés ne sont que du code, et pas vraiment un projet au sens traditionnel du terme. Vous ne pouvez pas «construire» un projet partagé, c'est juste du code qui est intégré dans les autres projets, puis construit là-bas.

Mais d'une manière ou d'une autre, mon fichier de solution avait été mis à jour comme si le projet partagé était sa propre chose qui devait être construite. Je suppose que chaque fois que j'essayais de construire et que je n'avais pas changé le code dans le projet partagé, alors il se disait que `` rien n'a changé, ignorez ces versions ''

J'ai trouvé le projet partagé dans le solution.slnfichier comme:

Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Api.Common", "Api.Common\Api.Common.shproj", "{EC580471-D78A-4509-AC46-BD565553AD60}"

..ce qui est bien. Ce qui ne va pas, c'est que ce projet est également apparu GlobalSection(ProjectConfigurationPlatforms) = postSolutioncomme suit:

    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.Build.0 = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.ActiveCfg = Release|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.Build.0 = Release|Any CPU

J'ai supprimé ces quatre lignes de mon .slnfichier, et maintenant les choses semblent à nouveau heureuses

PaulG
la source
Génial! C'était ça! J'ai supprimé chaque ligne du fichier .sln qui commençait par une ligne qui disait seulement "Global" et supprimé toutes les lignes jusqu'à "EndGlobal". Ensuite, cela a fonctionné à nouveau.
Ted le
2
  1. Fermer le studio visuel
  2. Ouvrez le fichier sln avec le bloc-notes
  3. supprimez toutes les choses comme ceci: {B546C55D-9321-4FC0-B25C-46844222BEBE} .Debug with Fakes | x86.ActiveCfg = Debug with Fakes | x86 (il y en aura un tas)

4. enregistrez le fichier 5. ouvrez Visual Studio et tout va mieux

Chris Heinemann
la source
2
Pourquoi cela aide-t-il? Ajoutez des explications et soyez aussi détaillé que possible afin que les futurs lecteurs puissent vous aider à comprendre pourquoi vous deviez suivre ces étapes.
2

J'ai mis à jour vers 15.9.11, ... après quelques builds, même problème: la plupart des projets sont ignorés (qui se construisent il y a une seconde sans problèmes). Décharger / recharger la solution aide toujours dans mon cas, mais cela se reproduira bientôt.

Je ne sais pas pourquoi ... sauf un gros bug dans VS2017

J'ai vérifié le gestionnaire de configuration, toutes les coches sont définies pour construire.

Peut-être que cela a quelque chose à voir avec les paquets nuget, mais ce n'est qu'une supposition

La solution n'a que c ++ / vcxproj, pas de csproj. 64 et 32 ​​sont installés à la fois

Timm
la source
2

La première chose à faire est de diagnostiquer pourquoi la construction ignore des projets. Donc, pour obtenir une sortie de construction détaillée, modifiez la verbosité à detailedl'endroit suivant dans Visual Studio.

entrez la description de l'image ici

Darren Wood
la source
7
Les paramètres de verbosité n'aident malheureusement pas. La sortie ne dit toujours que «projet ignoré» sans expliquer pourquoi.
PaulG
1

J'ai eu le même problème, découvert que le paramètre du projet était pour le processeur Itanium, le changer en Intel l'a corrigé.

Sabuncu
la source
1

Rencontrait le même problème avec VS2005, toutes les configurations étaient correctes. Il sautait même la commande Nettoyer le projet.

Enfin, le déchargement / rechargement a fait la magie.

Prakash
la source
1

Cliquez avec le bouton droit sur Solution dans votre explorateur de solutions, puis cliquez sur Propriété en bas du menu. Dans les fenêtres de propriétés, cliquez sur Propriétés de configuration -> Configuration dans le volet gauche, vous verrez la liste des projets sur le volet droit, assurez-vous que la case à cocher Construire est cochée dans la fenêtre contextuelle.

TonyXu
la source
1

Si votre solution contient un fichier de projet NuGet (* .nuproj), essayez de le décharger, puis de reconstruire votre solution.

Cela a fonctionné pour moi après qu'aucun de ce qui précède n'a fonctionné.

FrequentGuest
la source
0

Je trouve que parfois, lorsque vous avez une plate-forme cible définie pour, disons, x86 dans votre solution et dans vos projets, le projet ne l'a pas toujours sélectionné.

Pour vérifier, allez dans les propriétés du projet et voyez si vous pouvez sélectionner cette plate-forme dans le paramètre Build-> Platform si vous ne pouvez pas, vous devrez accéder au gestionnaire de configuration et créer cette configuration.

TriStar
la source
0

J'ai eu ce problème avec certains projets Windows CE sur un nouveau PC. "Unload project" et "Reload project" semblaient résoudre le problème, mais en fait, Visual Studio était simplement passé à une plate-forme différente et l'avait construit.

Il s'est avéré que bien que ma plate-forme WinCE ait été affichée comme plate-forme active, Visual Studio ne la voyait pas "vraiment". La solution était de réinstaller le SDK WinCE avec les privilèges d'administrateur :

  • Assurez-vous que Visual Studio 2008 n'est pas en cours d'exécution.
  • Ouvrez une «Invite de commandes Visual Studio 2008» en tant qu'administrateur. Sous Windows 7, faites un clic droit sur le raccourci et choisissez l'option «Exécuter en tant qu'administrateur».
  • Entrez la commande suivante: msiexec /log SDKInstallLog.txt /package <the path to your .msi file>
  • Lorsqu'on vous demande si vous souhaitez faire une installation personnalisée ou complète, choisissez une installation personnalisée et demandez à l'installateur d'omettre l'installation de la documentation (cette étape n'était pas nécessaire dans mon cas; en fait, je lui ai simplement demandé de "réparer" l'installation existante. )
  • Installer
Qwertie
la source
0

VS 2008 ignorera les cibles x64 si vous n'avez pas installé le compilateur x64. VS 2008 ne le fait pas par défaut. Un peu duh, chose.

user2869030
la source
0

J'ai eu un problème très similaire après avoir généré un projet à partir d'un décompilateur de Telerik, puis essayé de le recompiler. Le projet était ignoré chaque fois que j'essayais de le reconstruire. J'ai essayé beaucoup des suggestions ci-dessus, mais pour moi, c'était le .NET Framework sélectionné dans les propriétés du projet.

Cliquez avec le bouton droit sur le projet dans le fichier de solution, sélectionnez les propriétés, l'onglet de l'application, modifiez le cadre cible de 4.0 à 3.5.

Ensuite, reconstruisez, et j'ai un tas d'erreurs manquantes de référence d'assemblage, ce qui est logique puisque je n'ai pas encore ajouté de références à celles-ci.

Elmer
la source
0

Je mets à jour une petite mise à jour de Visual Studio 2017, puis le programme d'installation me rappelle de redémarrer mon ordinateur, mais je n'ai pas redémarré.Lorsque je construis mon projet ou ma solution dans Visual Studio 2017, je rencontre le même problème ci-dessus.Je suppose que la mise à jour peut-être la clé, donc je redémarre mon ordinateur, je l'ai fait.:>

Farb
la source
0

J'ai eu ce problème dans Visual Studio 2017 15.9.4 et après quelques recherches et un peu de temps, j'ai découvert que dans ma solution, le fichier .csproj de l'un des projets était corrompu après la fusion dans TFS. (Je pourrais construire d'autres projets en déchargeant le projet problématique de la solution). La façon dont j'ai résolu mon problème était de comparer le fichier .csproj avant et après la fusion et de résoudre ce problème. Et par correctif, je veux dire puisque le type de mon propre projet était .netStandard, j'ai supprimé les lignes inutiles, y compris Configuration PropertyGroup , tous et d'autres dans le nouveau fichier .csproj pour le rendre similaire à la version précédente de style .netstandard.

VahidShir
la source
0

J'ai eu un problème similaire, j'avais un projet qui ne pouvait pas se charger dans l'explorateur de solutions pour une raison quelconque. Quand j'ai chargé ce projet, cela a fonctionné comme un charme.

Gaurav Yeole
la source
0

J'ai juste eu ce problème:

Avait mis à jour VS 2017 vers la dernière version 15.9.11 et peu de mes projets ont été mis à jour vers .net core 2.2. J'ai initialement chargé tous les projets essayés de construire / nettoyer / reconstruire et tout a été ignoré. Suivez ce qui suit pour résoudre:

  1. J'ai déchargé chaque projet et je les ai rechargés.
  2. Fermé toutes les instances de VS et ouvert VS en tant qu'administrateur (cliquez avec le bouton droit sur le raccourci et choisissez l'option "Exécuter en tant qu'administrateur")

Voilà tout était de retour en action et j'ai pu construire tous les projets avec succès.

chéthan
la source
0

Le studio visuel 2017

Après avoir ajouté la configuration dans le gestionnaire de configuration

Cliquez avec le bouton droit sur le projet -> Projet uniquement -> Construire uniquement / Reconstruire uniquement / Nettoyer uniquement

si tous les autres paramètres sont corrects.

mail2subhajit
la source
0

Problème: Rebuilding, Build, Clean ignorait tous mes projets sauf deux d'entre eux.

Des solutions qui n'ont pas fonctionné pour moi:

  1. Les paramètres de configuration de la solution étaient comme prévu, donc aucun changement n'a été apporté.

  2. Le déchargement et le rechargement n'ont pas fonctionné.

Raison de l'événement:

Cela se produisait parce que le framework .NET cible était supérieur (4,7) pour ces 2 projets mais inférieur pour les autres projets. Une invite était initialement apparue me demandant d'installer .NET 4.7, ce que j'ai fait, mais il s'est avéré qu'il était incapable de reconnaître qu'il est installé sans redémarrer ma machine.

Des solutions qui ont fonctionné:

  1. Le redémarrage de ma machine a fait l'affaire. Après le redémarrage, il a correctement reconnu que .NET 4.7 est installé.
  2. Alternativement, rétrograder le cadre cible du projet en cliquant avec le bouton droit sur le projet -> Propriétés -> Application -> Cadre cible et en le définissant de la même manière que les autres projets qui étaient ignorés, a également résolu le problème.

Je recommanderais d'installer le dernier .NET Framework et de redémarrer la machine pour éviter de rencontrer d'autres problèmes.

Sonali Agrawal
la source
0

Il ignorera les builds sur tous les projets dont les projets dépendants ont échoué.

mcmillab
la source