Question

Je pense qu'il s'agit probablement d'une question de chargement d'assembly .NET générique, mais dans mon cas spécifique, je souhaite que mes fonctionnalités SharePoint pointent vers un assembly dont le contrôle de version est associé au numéro de révision SVN approprié.

Mes assemblages sont désormais versionnés, comme indiqué dans cet article . J'aimerais pouvoir configurer mes fonctionnalités SharePoint de manière à utiliser la dernière version de l'assembly disponible dans le GAC.

<Feature Id="7b5d86e8-17dc-4943-8f4e-ad1068daf4f9" 
         Title="My happy feature" 
         Scope="Web" 
         Version="1.0.0.0" 
         Hidden="FALSE" 
         DefaultResourceFile="core" 
         ReceiverAssembly="HappyFeature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d772fbab82fe6896"
         ReceiverClass="HappyFeature.Receivers.HappyItemEventReceiver"
         xmlns="http://schemas.microsoft.com/sharepoint/">
</Feature>

Lorsque je le fais, bien sûr, SharePoint ne peut pas trouver l'assembly car le nom fort ne correspond pas à la version 1.0.0.0 décrite ici. Ma version actuelle de mon assemblage est 1.0.4479.26553. J'aimerais donc que mes fonctionnalités puissent rechercher automatiquement des versions d'assemblages numérotées de manière similaire. Comment puis-je faire cela?

J'ai un peu naïvement essayé quelque chose comme ceci:

ReceiverAssembly="HappyFeature, Version=1.0.*, Culture=neutral, PublicKeyToken=d772fbab82fe6896"

et

ReceiverAssembly="HappyFeature, Version=1.0.*.*, Culture=neutral, PublicKeyToken=d772fbab82fe6896"

Mais lorsque j'essaie de déployer ma solution en tant que telle, elle semble toujours rechercher un fichier avec la version 1.0.0.0:

  

Caractéristique   '7b5d86e8-17dc-4943-8f4e-ad1068daf4f9'   n'a pas pu être installé car le   chargement de l'ensemble récepteur   "HappyFeature, Version = 1.0. . ,   Culture = neutre,   PublicKeyToken = d772fbab82fe6896 "   échoué:   System.IO.FileNotFoundException: Pourrait   ne charge pas le fichier ou l'assembly   'HappyFeature, Version = 1.0.0.0,   Culture = neutre,   PublicKeyToken = d772fbab82fe6896 'ou   une de ses dépendances. Le système   ne trouve pas le fichier spécifié. Fichier   nom: 'HappyFeature, Version = 1.0.0.0,   Culture = neutre,   PublicKeyToken = d772fbab82fe6896 '

Quel est le bon moyen de contraindre la structure à charger mes ensembles de fonctionnalités de version incrémentée?

EDIT: Ainsi, bien que je n’aie pas résolu la question que j’avais posée, la suggestion de Ryan a résolu mon problème pratique de pouvoir simplement étiqueter mes assemblages avec des informations relatives au SVN tout en conservant la possibilité de charger correctement mes assemblages. dans le monde SharePoint FeatureReceiver.

Était-ce utile?

La solution

Ce que vous pouvez faire est de garder la version d'assemblage identique (du moins en tant que "version majeure compatible") tout en utilisant la même technique pour insérer le numéro de révision SVN dans la propriété AssemblyFileVersion.

Ensuite, vous n'aurez plus à mettre à jour les fichiers de stratégie de l'éditeur.

KB556041 - Comment utiliser la version d'assembly et la version de fichier d'assembly

Supposons que vous construisiez un assemblage de structure pour votre projet utilisé par de nombreux développeurs lors de la construction des assemblys d'application. Si vous publiez fréquemment une nouvelle version de l'assembly ... et si les assemblys sont nommés de manière forte, les développeurs devront changer la référence chaque fois que vous publiez un nouvel assemblage ... Une meilleure option dans ce type de groupe fermé et de scénarios volatils serait de corriger le problème. 'Version d'assemblage' et ne modifiez que la 'Version du fichier d'assemblage'.

SO - Quelles sont les différences entre AssemblyVersion et AssemblyFileVersion

Autres conseils

Vous pouvez utiliser une stratégie de l'éditeur pour rediriger les nouvelles version.

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