2010-01-09 2 views
3

J'ai spécifié une liaison d'assemblage pour une version plus récente d'un assemblage utilisé dans mon application, et fonctionne très bien.assemblyBinding dans l'application .NET fonctionne avec l'ancienne version si la nouvelle version n'est pas disponible?

Toutefois, sur l'une de mes machines client, la nouvelle version de cet assembly est manquante, mais l'ancienne version est présente. Lorsque j'essaie d'exécuter l'application, elle dit qu'elle ne peut pas trouver la nouvelle version, ce qui est normal, je suppose. La question est, comment puis-je dire au framework .NET d'utiliser l'ancienne version si la nouvelle version n'est pas disponible?

Le but est d'avoir un fichier de configuration unique qui fonctionne automatiquement en fonction de la version d'assemblage installée sur n'importe quelle machine client. Je veux avoir un fichier de configuration unique, qui fonctionne comme ceci:

  • si assembly référencé a la version 1, que d'utiliser cette version 1.
  • si assembly référencé a la version 2, que d'utiliser cette version 2.
  • ... etc

J'essaie d'éviter de modifier les informations assemblyBinding lors de l'exécution, en fonction de la version installée de cet ensemble référencé.

Des idées? Merci.

+0

Intéressant ... Je suppose que vous pourriez le charger à l'exécution et utiliser la réflexion, mais je suis sûr qu'il y a un meilleur moyen. –

Répondre

0

Vous devez charger l'assembly au moment de l'exécution en utilisant Assembly.Load ou quelque chose du genre. La redirection d'assembly .NET ne prend pas en charge les instructions if et fallbacks et autres.

Questions connexes