2009-01-16 8 views
20

Je travaille actuellement sur un contrôle de serveur pour d'autres applications dans notre société pour l'interface avec un service WCF. Chaque fois que je modifie un code de modification et recompile le contrôle, j'incrémente la classe AssemblyVerison et AssemblyFileVersion dans AsseemblyInfo.cs par un. Par exemple, ma dernière version est passée de 1.0.07.0 à 1.0.08.0."Une référence d'assemblage vous manque-t-elle?" erreur de compilation - Visual Studio

Lorsque l'application consommatrice met à jour le fichier en copiant le dernier fichier dans le répertoire bin et tente de compiler, ils reçoivent l'erreur suivante:

The type or namespace name 'MyControl' does not exist in the namespace 'MyNamespace' (are you missing an assembly reference?)

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

Est-il possible de mettre à jour le contrôle serveur sans avoir à supprimer et ajouter de nouveau la référence?

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

+0

Voici un bon article sur la fixation du problème d'assemblage - http://www.codeandyou.com/2017/08/missing-assembly-reference-in-visual.html – virender

Répondre

12

Cliquez avec le bouton droit sur la référence d'assemblage dans l'explorateur de solutions, propriétés, désactivez l'option "Version spécifique".

2

Donnez-vous un nom à vos assemblages? Dans ce cas, ce n'est pas une bonne idée d'incrémenter automatiquement votre numéro de build car avec chaque nouveau numéro de build, vous devrez également mettre à jour toutes vos références.

1

je me suis cogné 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 peut changer 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 il fonctionnera comme vous le souhaitez. N'oubliez pas d'implémenter votre propre contrôle de version sur votre assemblage!

25

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 avec 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-> Cadre cible

0

Dans mon cas, je devais changer le paramètre Copie locale true (montage clic droit dans l'explorateur de solution, sélectionnez les propriétés, localiser et change la valeur de la propriété Copy Local). Une fois ce paramètre modifié, la publication de mon service WCF copiait le fichier sur le serveur et l'erreur disparaissait.

Questions connexes