2009-04-22 17 views
0

Je viens de me retrouver dans une situation où j'avais besoin de patcher une version avec une nouvelle version d'un de nos assemblages. Tous mes assemblys sont des noms forts et il s'agit d'une application Windows Forms. J'ai édité mon App.config pour faire les re-cartographies appropriées et tout s'est bien passé jusqu'à ce que nous avons testé notre logiciel avec notre version localisée. Le problème que nous avons constaté est que l'assemblage satellite existant ne s'est pas chargé et que nous n'avons pas vu les ressources localisées. La seule solution que j'ai pu trouver consistait à reconstruire les assemblages satellites avec le lieur d'assemblage en utilisant l'assemblage de base comme gabarit.Les versions Must Satellite Assembly correspondent-elles à la version de base?

Quelques questions:

Si mon ensemble de base est solide nommé, doit mon assembly satellite aussi fortifiez nommé? Dans mon cas, je n'utilise pas le GAC.

Pourquoi mon assembly satellite n'utilise-t-il pas la redirection spécifiée dans mon App.config?

Répondre

0

Oui, les assemblys satellites doivent également avoir un nom fort et avoir besoin de la même version et de la même clé publique que l'assemblage réel.

Voir ce lien: http://www.codeguru.com/csharp/.net/net_general/tipstricks/article.php/c11367/

Je ne sais pas pourquoi il est pas chargé lorsque vous utilisez la redirection. Vous remplacez l'assembly A version 1 par la version 2. Vous redirigez la version 1 vers la version 2. Vous avez des assemblys satellites pour l'assemblage A encore dans la version 1? Est-ce correct? Cela ne marche bien sûr pas. Si vous remplacez un assemblage, vous devez remplacer ses satellites.