web-dev-qa-db-fra.com

"Vous manque-t-il une référence à l'Assemblée?" erreur de compilation - Visual Studio

Je travaille actuellement sur un contrôle de serveur pour que d'autres applications de notre société puissent interfacer avec un service WCF. Chaque fois que je modifie le code de changement et que je recompile le contrôle, j'augmente d'un cran la classe AssemblyVerison et AssemblyFileVersion de AsseemblyInfo.cs. Par exemple, ma dernière version est passée de 1.0.07.0 à 1.0.08.0.

Lorsque l'application consommante met à jour le fichier en copiant le dernier fichier dans le répertoire bin et tente de la compiler, le message d'erreur suivant s'affiche:

Le type ou nom de l'espace de noms 'MyControl' n'existe pas dans l'espace de noms 'MyNamespace' (il manque un Référence d'assemblage?)

Afin de résoudre cette erreur, ils doivent supprimer la référence actuelle et rajouter la référence.

Existe-t-il un moyen de mettre à jour le contrôle du serveur sans avoir à supprimer et à rajouter la référence?

METTRE À JOUR:
Je ne suis pas fort nommer le contrôle du serveur.
@ JPunyon - Voulez-vous dire que l'application consommatrice ajoute le projet de contrôle du serveur à sa solution?

24
Michael Kniskern

Cliquez avec le bouton droit de la souris sur la référence d'assemblage dans l'explorateur de la solution, puis désactivez l'option "Version spécifique".

16
Wim Coenen

Dans mon cas, il s’agissait d’un projet défini à l’aide de Target Framework: "Profil client .NET Framework 4.0" qui tentait de référencer des projets dll définis à l'aide de Target Framework: ".NET Framework 4.0".

Une fois que j'ai modifié les paramètres du projet pour utiliser Target Framework: ".NET Framework 4.0", tout a été bien construit.

Clic droit sur le projet-> Propriétés-> Application-> Framework cible

29
EZDsIt

Vous nommez fort vos assemblées? Dans ce cas, l'incrémentation automatique de votre numéro de build n'est pas une bonne idée, car à chaque nouveau numéro de build, vous devrez également mettre à jour toutes vos références.

2
Dirk Vollmar

J'ai heurté la réponse qui m'a orienté dans la bonne direction, mais ...

Pour ceux qui utilisent Visual C++:

Si vous devez désactiver l'incrémentation automatique de la version, vous pouvez modifier cette valeur dans le fichier "AssemblyInfo.cpp" (tous les projets CLR en ont un). Donnez-lui un vrai numéro de version sans l'astérisque et cela fonctionnera comme vous le souhaitez.

N'oubliez pas de mettre en place votre propre contrôle de version sur votre assemblage!

1
Jin

Dans mon cas, j'ai dû définir le paramètre Copy Local sur true (cliquez avec le bouton droit de la souris sur Assembly dans l'explorateur de solutions, sélectionnez Propriétés, recherchez et modifiez la valeur de la propriété Copy Local). Une fois ce paramètre modifié, la publication de mon service WCF a copié le fichier sur le serveur et l’erreur a disparu.

0
ket

Lors de la création d'un nouveau projet UWP vide dans la communauté Visual Studio 2017, cette erreur s'est produite. 

 enter image description here

Après la solution suggérée (restauration du cache NuGet), la référence a refait surface dans le projet.

0
user2063329