Question

J'essaie d'ajouter un fichier de stratégie d'éditeur au compte gac conformément à cette thread , mais j'ai des problèmes lorsque j'essaie d'ajouter le fichier sur mon serveur de test.

Je reçois "Un module spécifié dans le manifeste d'assembly" policy.3.0.assemblyname.dll "est introuvable."

Mon fichier de règles ressemble à ceci:

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="*assemblyname*"
                          publicKeyToken="7a19eec6f55e2f84"
                          culture="neutral" />
        <bindingRedirect oldVersion="3.0.0.0"
                         newVersion="3.0.0.1"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

S'il vous plaît, aidez!

Merci

Ben

J'ai recréé le problème à partir de zéro avec un nouvel assemblage sans dépendances (à part les valeurs par défaut) lui-même - tout fonctionne correctement sur ma machine de développement local (et redirige également parfaitement), mais donne la même erreur en ajoutant le fichier de règles. au GAC sur le serveur!

<configuration>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="TestAsm"
                          publicKeyToken="5f55456fdcc9b528"
                          culture="neutral" />
        <bindingRedirect oldVersion="3.0.0.0"
                         newVersion="3.0.0.1"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
</configuration>

lié ??de la manière suivante

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\al.exe /link:PublisherPolicy.xml /out:policy.3.0.TestAsm.dll /keyfile:..\..\key.snk /version:3.0.0.0
pause

S'il vous plaît, aidez!

Était-ce utile?

La solution

Wow - ok je l'ai.

J'aurais dû faire plus attention à ce que cela signifiait exactement

(MSDN) Procédure: créer une stratégie d'éditeur

  

Remarque importante: la stratégie de l'éditeur   l'assemblage ne peut pas être ajouté à la globale   cache d'assemblage à moins que l'original   Le fichier de stratégie de l'éditeur se trouve dans   le même répertoire que l'assembly.

Cette exigence est franchement si bizarre qu’elle n’a pas été enregistrée. Le fichier de stratégie d'origine, qui a été compilé dans l'assembly que j'essaie d'ajouter au gac, doit se trouver dans le même dossier que l'assembly de stratégie au moment de l'ajout de l'assembly de stratégie.

Autres conseils

Ok ... je veux juste vérifier quelques bases ...

Vous avez définitivement installé les deux versions de l’assemblage dépendant sur GAC?

Et avez-vous vérifié que les numéros de version de l'attribut [assembly: AssemblyVersion ()] sont corrects?

Et vous avez utilisé [assembly: AssemblyVersion ()] et NON [assembly: AssemblyFileVersion ("1.0.0.1"). ].

Mise à jour: Mon erreur est que vous n’avez besoin que de la dernière version de l’assemblage dans le GAC. Je viens d'essayer ça ici et ça marche. Mes seules autres pensées sont de vérifier que les jetons de clé publique sont les mêmes et que vous n'avez pas mal orthographié le nom de l'assembly.

Lorsque vous générez également le fichier de stratégie, veillez à utiliser le commutateur / version dans l'éditeur de liens de l'assembly pour définir explicitement le numéro de version sur 3.0.0.0. AND ne spécifiez pas le commutateur / platform. par exemple

al.exe /link:assembly.config /out:policy.3.0.assembly.dll 
         /keyfile:mykey.snk /version:3.0.0.0

Pour ajouter des assemblys de stratégie au GAC à l'aide de Wise, vous procédez de la même manière que pour ajouter l'assembly auquel la stratégie est destinée. Vous ajoutez donc l'assembly de règles au & Global; Cache de l'assembly global " dans Wise, et tant que vous avez le fichier de stratégie (.config) au même emplacement sur la machine, Wise l’ajoute automatiquement à GAC.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top