Le projet référencé est «perdu» au moment de la compilation

102

J'ai une solution C # avec deux projets: un service (le projet principal) et un enregistreur. Le service utilise les classes de l'enregistreur. J'ai ajouté une référence au projet d'enregistrement dans le projet de service. Au moment de la conception, la saisie semi-automatique fonctionne bien: les classes de l'enregistreur sont visibles, les références que j'utilise sont colorées de manière appropriée.

Je reconstruis la solution et les choses tournent mal. Les références ne sont plus reconnues: "Le nom 'Journalisation' n'existe pas dans le contexte actuel 'et les classes n'existent plus en saisie semi-automatique. La suppression et le rattachement de la référence me ramènent à l'état de base consistant à avoir les identifiants visibles pour la saisie semi-automatique.

J'ai redémarré, effacé tous les caches, vérifié que c'est la seule instance de VS 2010 en cours d'exécution sur ma machine.

Y a-t-il quelque chose d'évident (évidemment) qui me manque?

Bob Kaufman
la source

Réponses:

158

Vérifiez vos types de construction de chaque projet sous les propriétés du projet - je parie que l'un ou l'autre sera configuré pour la construction .NET XX - Client Profile.

Avec des versions incohérentes, en particulier avec l'un Client Profileet l'autre non, cela fonctionne au moment du design mais échoue au moment de la compilation. Un vrai gotcha.

Il y a quelque chose de drôle qui se passe dans Visual Studio 2010 pour moi, qui continue de définir des projets de manière aléatoire Client Profile, parfois lorsque je crée un projet, et parfois quelques jours plus tard. Probablement un raccourci clavier que je frappe accidentellement ...

Joshcomley
la source
1
Je parie que vous avez raison ... et honte à moi si c'est le cas de ne pas me souvenir de cette question comparable que j'ai posée le mois dernier! stackoverflow.com/questions/3991361/…
Bob Kaufman
6
@Bob Cela n'arrête pas de me saigner, et tout comme vous avez cette question précédente, chaque fois que cela arrive, pendant au moins quelques minutes, je suis complètement confus par tout cela jusqu'à ce que je me souvienne "Oooooh, attendez, Client ** ** ing Profile "
joshcomley
4
J'avais aussi ce problème avec VS2012. Il s'est avéré que ce n'était pas le problème du profil du client, mais que le projet référencé était en 4.5 et que le nouveau projet référencé était par défaut 4.0. Je suis passé à 4,5 et le problème a disparu. Même solution vraiment, juste une autre variante.
Brad Mathews
Cela m'est arrivé récemment dans VS 2013. Le projet était la version 4.5 par défaut mais l'une des bibliothèques a été construite sur 4.5.2. Si le projet est 4.5.2 et l'une des bibliothèques est 4.5 ou 4.5.1, cela fonctionnera. Mais pas l'inverse.
ahwm
4

Assurez-vous que les deux projets ont la même version du framework cible ici: clic droit sur projet -> propriétés -> application (onglet) -> framework cible

Assurez-vous également que le projet "logger" (que vous souhaitez inclure dans le projet principal) a le type de sortie "Bibliothèque de classes" dans: clic droit sur projet -> propriétés -> application (onglet) -> type de sortie

Enfin, reconstruisez la solution.

manar
la source