2009-07-09 6 views
0

J'ai créé une bibliothèque commune au travail, mais contrairement à this question, elle n'est pas publiée dans le GAC. Au lieu de cela, il est publié en privé dans un dossier d'installation spécifique à l'entreprise. EDIT: toutes les applications internes vont dans ce même dossier.Est-il possible d'appliquer une stratégie d'éditeur à un assembly fortement publié et publié de manière privée?

Est-il toujours possible d'appliquer une stratégie de publication, permettant aux applications plus anciennes d'utiliser des versions plus récentes de la DLL? This article donne l'impression que je peux, mais ce n'est pas totalement clair pour moi.

Si oui, que dois-je distribuer dans mon dossier d'installation spécifique à l'entreprise?

  1. Un fichier de configuration pour la bibliothèque commune? (policy.1.0.MyLibrary.config) (Ce serait plus simple.)
  2. Une DLL de stratégie pour la bibliothèque commune? (policy.1.0.MyLibrary.dll - la version conforme de # 1.)
  3. Ou un ensemble de fichiers de configuration pour chaque application qui utilise la bibliothèque commune? (MyApp1.exe.config, MyApp2.exe.config, etc.) (beurk!)

Répondre

0
  1. serait tout ce que vous avez besoin de l'OMI. Ou pour être exact dans votre configuration app.config bindingRedirect élément et vous avez terminé.

Ups désolé. bindRedirect exige que le dossier se trouve dans le dossier de votre application.

Quel est l'avantage de "dossier d'installation spécifique à l'entreprise" qui n'est pas sous le dossier de l'application en ce qui concerne GAC? OMI, le GAC est meilleur s'il veut que les assemblées soient partagées.

S'ils insistent, vous pouvez charger les assemblages manuellement. Regardez l'événement AppDomain.AssemblyResolve.

+0

Les applications sont installées dans les mêmes dossiers que la bibliothèque, ce qui serait correct. Mais il semble que vous parlez d'un fichier app.config pour l'application, qui est mon # 1. Cela fonctionnera-t-il pour écrire un fichier policy.1.0.mydll.config à la place? – Eric

+0

Désolé, jamais utilisé le fichier de configuration de la politique. Mais je soupçonne que vous n'en avez pas besoin. Utilisez simplement bindingRedirect dans votre fichier XYZ.exe.config –

+0

Plusieurs applications utilisent la bibliothèque. Donc, je devrais créer et maintenir des fichiers de configuration pour chacun d'entre eux, et je devrais également savoir que de nouvelles applications sont écrites. Comme je l'ai dit pour # 3 dans la question ... YUCK! – Eric

Questions connexes