2009-06-23 6 views
7

Ich denke, dies ist wahrscheinlich eine generische Frage zum Laden von .NET-Assembly, aber in meinem speziellen Fall möchte ich, dass meine SharePoint-Features auf eine Assembly verweisen, deren Versionierung mit der richtigen SVN-Revisionsnummer verknüpft ist.SharePoint-Funktionen: Wie kann ich die Versionierung von Platzhaltergruppen verwenden?

Meine Baugruppen sind jetzt versioniert wie in this article erwähnt. Ich möchte meine SharePoint-Funktionen nur so konfigurieren können, dass sie die neueste Version der Assembly verwenden, die sich im GAC befindet.

<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> 

Wenn ich das tue, Sharepoint natürlich kann die Montage nicht finden, weil der starke Name mit der 1.0.0.0 Version hier beschriebenen nicht bis überein. Meine aktuelle Version in meiner Assembly ist 1.0.4479.26553. Daher möchte ich, dass meine Features automatisch ähnlich nummerierte Assembly-Versionen finden können. Wie kann ich das machen?

Ich habe versucht, etwas naiv, etwas wie folgt aus:

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

und

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

Aber wenn ich versuche, meine Lösung als solche zu implementieren, es scheint immer noch mit dem 1,0 für eine Datei suchen werden .0.0 Version:

Eigenschaft '7b5d86e8-17dc-4943-8f4e-ad1068daf4f9' konnte nicht installiert werden, da Laden der Ereignisempfängerbaugruppe "HappyFeature, Version = 1.0. ., Culture = neutral, PublicKeyToken = d772fbab82fe6896" fehlgeschlagen: System.IO.FileNotFoundException: Könnte nicht 'HappyFeature, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = d772fbab82fe6896' Datei oder Assembly laden oder eine ihrer Abhängigkeiten Das System die angegebene Datei nicht finden können Dateiname:.. 'HappyFeature, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = d772fbab82fe6896'

Was ist der richtige Weg, um das Framework zum Laden meiner inkrementellen Feature Assemblies zu zwingen?


EDIT: Also, während ich nicht wirklich die spezifische Frage zu lösen habe ich gefragt hatte, gelöst Ryans Vorschlag mein praktisches Problem nur, dass ich meine Versammlungen mit SVN-bezogene Informationen zu markieren, unter Beibehaltung der Fähigkeit zu Laden Sie meine Assemblys erfolgreich in die SharePoint FeatureReceiver-Welt.

Antwort

8

Sie könnten AssemblyVersion beibehalten (zumindest solange es eine 'kompatible Hauptversion' ist), aber die SVN-Revisionsnummer mit derselben Technik in die AssemblyFileVersion-Eigenschaft schreiben.

Dann müssen Sie die Publisher-Richtliniendateien nicht mehr aktualisieren.

KB556041 - How to use Assembly Version and Assembly File Version

Angenommen, Sie einen Rahmenaufbau für Ihr Projekt bauen, die von vielen Entwicklern verwendet wird, während die Anwendungseinheiten zu bauen. Wenn Sie eine neue Version der Assembly sehr häufig freigeben ... und wenn Assemblies stark benannt sind, müssen Entwickler die Referenz jedes Mal ändern, wenn Sie eine neue Assembly freigeben ... Eine bessere Option in solchen geschlossenen Gruppen und flüchtigen Szenarios wäre das Reparieren der 'Assembly Version' und ändern Sie nur die 'Assembly File Version'.

SO - What are the differences between AssemblyVersion and AssemblyFileVersion

+0

Dank ... ich beim Verlag Politik sah und es schien mir ein wenig Huhn-und-Ei, und ich schien die Zielversion wissen muß noch. Ich habe auch gerade mit AssemblyFileVersion herumgespielt und das gibt mir tatsächlich, was ich brauche: nur eine Möglichkeit, meine Assemblys mit meinen SVN-Revisionsinformationen zu markieren. Vielen Dank. –

1

Sie können eine publisher policy verwenden, um auf die neue Version umzuleiten.

Verwandte Themen