Je viens de mettre à niveau un projet VS2010 vers VS2012 et j'ai maintenant un problème où les projets dépendants ne s'appuient pas sur la demande. Par exemple, disons que j'ai les projets suivants dans ma solution:
Où ConsoleApp 1 fait référence à la bibliothèque A. Si je modifie la signature d'une méthode dans une classe de la bibliothèque A et que j'exécute ConsoleApp 1, il y aura une erreur de compilation car ConsoleApp 1 ne voit pas mes modifications car l'exécution de ConsoleApp 1 n'a PAS provoqué la bibliothèque A construire.
Si je crée manuellement la bibliothèque A, puis que je crée manuellement ConsoleApp 1, cela fonctionne correctement. Cependant, je m'attends à ce que l'exécution de ConsoleApp 1 entraîne la reconstruction de tous les projets dépendants avant le lancement.
Puis-je avoir quelque chose de mal configuré? Ou est-ce un bug dans VS2012?
Essayez de supprimer le projet references
et de l'ajouter à nouveau (chemin à suivre: References ->
(clic-droit) Add reference -> Solution -> Project
). Avant de réessayer Save All
. Voilà comment je l'ai résolu.
Vos symptômes ressemblent beaucoup à ceux que j'ai connus il y a quelque temps . Assurez-vous que les projets sont configurés pour être construits avec votre solution active
actuelle configuration
et la plateforme de solution active sous Build->Configuration Manager
.
Cela se produit lorsque le fichier .suo de la solution est verrouillé et que Visual Studio ne peut plus y écrire. Un autre symptôme de ce problème est que vous verrez des fichiers temp suo créés à côté de la solution lorsque vous l'ouvrirez. Essayez de fermer Visual Studio et de supprimer tous les fichiers * .suo dans votre zone de travail. Rouvrez ensuite Visual Studio et reconstruisez tout. Pas besoin de reconstruire manuellement votre solution. Cela résoudra le problème lorsqu'il est provoqué par un .suo verrouillé, comme cela est arrivé à un de mes collègues aujourd'hui.
Dans son cas, la cause semblait être qu'il avait éteint son ordinateur portable alors que Visual Studio était encore ouvert. Peut-être que l'arrêt de Windows ne s'est pas terminé correctement? Nous ne pouvons que spéculer sur la façon dont le .suo a été verrouillé à l'origine.
J'ai essayé toutes les solutions ci-dessus et cela n'a pas résolu le problème pour moi. J'ai trouvé que c'était à cause du Active configuration
dans le ConfigurationManager
a été défini pour générer uniquement le projet principal (démarrage).
Accédez à Build
> ConfigurationManager
Assurez-vous que tous les projets que vous souhaitez créer sont vérifiés comme dans la capture d'écran ci-dessous.C'est un problème similaire sur le forum Asp.Net ici et voici les détails sur MSDN . Bien que cela soit bizarre, bcoz je n'ai jamais changé ces paramètres et cela fonctionnait correctement la semaine dernière
J'ai rencontré un problème similaire, la solution (ou le problème) était le Build and Run
paramètres sous Tools > Options... > Projects and Solutions > Build and Run
où "Ne créer que les projets de démarrage et les dépendances lors de l'exécution" a été coché. La capture d'écran montre ma solution qui fonctionne actuellement.
assurez-vous que le projet de référence a une version de framework .Net identique ou supérieure à celle du projet référencé.
Cliquez avec le bouton droit sur la solution dans l'Explorateur de solutions, puis cliquez sur "Nettoyer la solution".