2009-04-22 4 views
0

Ich bin gerade in eine Situation geraten, in der ich eine Version mit einer neuen Version einer unserer Assemblies patchen musste. Alle meine Assemblies sind starke Namen und dies ist eine Windows Forms-Anwendung. Ich habe meine App.config bearbeitet, um die entsprechenden Neuzuordnungen vorzunehmen, und alles lief gut, bis wir unsere Software mit unserer lokalisierten Version getestet haben. Das Problem, das wir sahen, war, dass die vorhandene Satellitenbaugruppe nicht geladen wurde und wir die lokalisierten Ressourcen nicht sehen konnten. Die einzige Lösung, die ich finden konnte, bestand darin, die Satellitenbaugruppen mit dem Baugruppenträger unter Verwendung der Basisbaugruppe als Vorlage neu aufzubauen.Müssen Satellite Assembly-Versionen mit der Basisversion übereinstimmen?

Ein paar Fragen:

Wenn meine Basisbaueinheit namens stark ist, muss auch meine Satelliten-Montage stark sein benannt? In meinem Fall benutze ich nicht den GAC.

Warum verwendet meine Satellitenbaugruppe nicht die in meiner App.config angegebene Umleitung?

Antwort

0

Ja, Satelliten-Assemblies müssen ebenfalls stark benannt sein und benötigen dieselbe Version und denselben öffentlichen Schlüssel wie die reale Assembly.

Siehe diesen Link: http://www.codeguru.com/csharp/.net/net_general/tipstricks/article.php/c11367/

Ich bin nicht sicher, warum es nicht geladen wird, wenn Sie die Umleitung verwenden. Sie ersetzen Assembly A Version 1 mit Version 2. Sie leiten Version 1 zu Version 2 um. Sie haben Satellitenassemblies für Assembly A noch in Version 1? Ist das richtig? Das funktioniert natürlich nicht. Wenn Sie eine Baugruppe ersetzen, müssen Sie ihre Satelliten ersetzen.

Verwandte Themen