2010-01-13 6 views
5

Ich bin in einer Anwendung einen Fehler wie diese bekommen,Link zur nicht spezifischen Version einer Baugruppe?

konnte nicht Datei oder Assembly 'MySql.Data, Version = 6.2.2.0, Culture = neutral, PublicKeyToken = c5687fc889699c44d' laden oder ein seiner Abhängigkeiten. Die gefundene Assembly-Version der Assembly stimmt nicht mit der Assemblyreferenz überein.

Das wird erwartet, da diese Installation eine vorherige Version der .dll installiert hatte.

Kann ich sagen (in Vs2008) auf diese MySQL.data.dll zu linken und sich nicht um ihre Version kümmern? Die MYSQL.data.dll-Referenz innerhalb des Projekts hat eine Eigenschaft mit dem Namen "Spezifische Version", obwohl die Einstellung "false" keinen Unterschied ergibt.

Ich bin mir der Implikation sehr wohl bewusst, wenn diese .dll binär inkompatibel mit der erforderlichen ist.

Antwort

5

SpecificVersion kann Ihr Problem nicht lösen, das nur zur Kompilierzeit funktioniert. Sie sollten Ihr Programm für ein Minimum an Überraschungen neu erstellen. Oder Sie können die <bindingRedirect> element in der .exe.config-Datei verwenden.

+0

Ich bin mir der Überraschungen bewusst, die auftreten können. Die Frage ist allgemeiner. Ich bin dabei, einige eigene Assemblies zu erstellen, und ich möchte diese .dlls einzeln aktualisieren können, ohne die .exe erneut zu erstellen, die auf sie verweist. – Anonym

+3

Ändern Sie die [AssemblyVersion] nicht, wenn es sich nur um einen Bugfix handelt, der nicht funktioniert. t Ändern Sie die öffentliche Schnittstelle der Klassen. Aktualisieren Sie nur die [AssemblyFileVersion]. Die .NET 3.5-Assemblys befinden sich beispielsweise immer noch bei 2.0.0.0. Die Tatsache, dass MySql die Version geändert hat, ist ein starker Hinweis darauf, dass eine Neukompilierung erforderlich ist. –

+0

+1 für AssemblyVersion vs AssemblyFileVersion –

-2

Ja, Sie können. Wählen Sie die referenzierte DLL aus, und legen Sie in den Eigenschaftenfenstern 'spezifische Version' auf False fest.

+0

Wie ich schon erwähnt habe, habe ich vergebens getan. – Anonym

+0

Dies hat keine Auswirkungen auf RunTime - nur zur Kompilierzeit – Rodney

Verwandte Themen