Nous avons une application Web déployée sur de nombreux sites Web avec uniquement des modifications frontales. La partie dorsale partagée contient DLL dans le GAC. Nous n'avons donc qu'à mettre à jour cette dll et tous les sites reçoivent la mise à jour.
Existe-t-il un moyen de remplacer le GAC par un DLL dans le dossier/bin afin de tester les nouvelles fonctionnalités avant leur publication?
Si elle porte le même numéro de version que la DLL référencée, le GAC est utilisé.
Si vous incrémentez le numéro de version, reconstruisez le site Web en référant le nouveau numéro de version, placez la nouvelle version dans le répertoire/bin, le DLL sera utilisé.
Si vous ne voulez pas changer le numéro de version, vous avez peu de chance.
Lorsque .NET charge des assemblys nommés forts, il essaie d'abord de décider du numéro de version à utiliser. Cela se fait d'abord via la référence, puis il cherche les politiques de l'éditeur , puis il cherche les redirections de liaison dans le fichier de configuration.
Après cela, il recherche l'assembly dans le GAC, puis dans tout codebase spécifié , puis il sonde différents dossiers du système de fichiers pour la DLL. Si, à l'une de ces étapes, il trouve la bonne version Assembly, il s'arrête.
Si vous ne modifiez pas le numéro de version de votre assemblage nommé, le .NET trouvera l'original dans le GAC et cessera de chercher. Notez que parce qu’il s’arrête lorsqu’il en trouve un, et parce que chercher dans le GAC est premier, spécifier une base de code pour votre assembly ne servira à rien si vous ne spécifiez pas également un nouveau numéro de version.
J'ai été en mesure de remplacer le GAC avec l'Assemblée dans le dossier\bin à l'aide de <codebase>
Element.
En spécifiant <codebase version="1.2.3.4" href="/bin/MyAssembly.dll" />
dans mon fichier web.config, je peux dire à mon application d'utiliser cette version plutôt que la version spécifiée dans le GAC.
Vous pouvez également consulter le <probing>
Element pour spécifier les emplacements d'assemblage?
Je pense que je pourrais dire la même chose qu'Adam Sills, mais reformulé pour mieux comprendre. D'après mes propres tests, voici ce qui se passe:
J'espère que c'est correct...
Vous pouvez afficher les informations de liaison dans le fichier journal à l'aide de la visionneuse du journal de liaison d'assemblage (Fuslogvw.exe), incluse dans le Kit de développement logiciel Windows (SDK).
s