2009-01-16 7 views
20

Ich arbeite derzeit an einer Serversteuerung für andere Anwendungen in unserer Firma, um mit einem WCF-Dienst zu interagieren. Jedes Mal, wenn ich einen Änderungscode ändere und das Steuerelement neu kompiliere, inkrementiere ich die AssemblyVerison- und AssemblyFileVersion-Klasse in der AssemblyInfo.cs um eins. Zum Beispiel ging mein letzter Build von 1.0.07.0 auf 1.0.08.0."Vermissen Sie eine Baugruppenreferenz?" Kompilierfehler - Visual Studio

Wenn die aufwändige Anwendung die Datei aktualisiert, indem Sie die aktuelle Version der Datei im Verzeichnis ist kopiert und versucht zu kompilieren, erhalten sie die folgende Fehlermeldung:

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

Um diesen Fehler zu beheben, haben sie die löschen aktuelle Referenz und fügen Sie die Referenz erneut hinzu.

Gibt es eine Möglichkeit, das Serversteuerelement zu aktualisieren, ohne die Referenz löschen und erneut hinzufügen zu müssen?

UPDATE:
Ich bin nicht stark, um die Server-Steuer benennen.
@JPunyon - Meinst du, die verbrauchende Anwendung fügt das Serversteuerprojekt zu ihrer Lösung hinzu?

+0

Hier ist ein guter Artikel zur Behebung des Montageproblems - http://www.codeandyou.com/2017/08/missing-assembly-reference-in-visual.html – virender

Antwort

12

Klicken Sie mit der rechten Maustaste auf den Assembly-Verweis im Solution Explorer, Eigenschaften, deaktivieren Sie die Option "Spezifische Version".

2

Sind Sie stark - benennen Sie Ihre Baugruppen? In diesem Fall ist es keine gute Idee, Ihre Build-Nummer automatisch zu erhöhen, da Sie bei jeder neuen Build-Nummer auch alle Ihre Referenzen aktualisieren müssen.

1

traf ich die Antwort, die mich in die richtige Richtung, aber ...

Für diejenigen, die Visual C++ verwenden:

Wenn Sie die automatische Erhöhung der Version auszuschalten benötigen, können Sie kann diesen Wert in der Datei "AssemblyInfo.cpp" ändern (alle CLR-Projekte haben einen). Gib ihm eine echte Versionsnummer ohne das Sternchen und es wird funktionieren wie du es willst.

Vergessen Sie nicht, Ihre eigene Versionskontrolle auf Ihrer Baugruppe zu implementieren!

25

In meinem Fall war es ein Projekt, das unter Verwendung von Zielframework definiert wurde: ".NET Framework 4.0-Clientprofil", das versuchte, mit Zielframework definierte DLL-Projekte zu referenzieren: ".NET Framework 4.0".

Sobald ich die Projekteinstellungen geändert habe, um Target Framework zu verwenden: ".NET Framework 4.0" wurde alles schön gebaut.

Rechtsklick die Ausbau-> Einstellungen-> Anwendungen-> Target Framework

0

In meinem Fall hatte ich die Copy Local-Einstellung auf true (Rechtsklick auf Montage in Lösung Explorer, wählen Sie Eigenschaften zu ändern, suchen und Ändern Sie den Wert der Eigenschaft Copy Local). Sobald diese Einstellung geändert wurde, kopierte die Veröffentlichung meines WCF-Dienstes die Datei auf den Server und der Fehler verschwand.