2009-06-23 10 views
7

Penso che sia probabile che sia una domanda generica di caricamento di assembly .NET, ma nel mio caso specifico, voglio che le mie caratteristiche di SharePoint facciano riferimento a un assembly il cui controllo delle versioni è associato al numero di revisione SVN corretto.Funzionalità di SharePoint: come posso utilizzare il controllo delle versioni dei caratteri jolly?

I miei gruppi sono ora versionati come indicato in this article. Mi piacerebbe essere in grado di configurare semplicemente le mie funzionalità di SharePoint per utilizzare l'ultima versione dell'assembly presente nel 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> 

Quando faccio questo, SharePoint, naturalmente, non può trovare l'assemblea perché il nome forte non corrisponde con la versione 1.0.0.0 descritto qui. La mia versione corrente nel mio assieme è la 1.0.4479.26553, quindi mi piacerebbe che le mie funzionalità fossero in grado di trovare automaticamente versioni di assemblaggi numerati in modo simile. Come posso fare questo?

ho un po 'ingenuamente provato qualcosa di simile:

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

e

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

Ma quando cerco di distribuire la mia soluzione come tale, sembra ancora essere alla ricerca di un file con la 1.0 .0.0 versione:

Caratteristica '7b5d86e8-17dc-4943-8f4e-ad1068daf4f9' non può essere installato perché il caricamento del ricevitore di eventi "HappyFeature, Versione = 1.0. ., Culture = neutral, PublicKeyToken = d772fbab82fe6896" fallito: System.IO.FileNotFoundException: Could non caricare il file o assembly 'HappyFeature, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = d772fbab82fe6896' o una delle sue dipendenze il sistema non riesce a trovare il file specificato file nome:.. 'HappyFeature, Version = 1.0.0.0, Culture = neutral, PublicKeyToken = d772fbab82fe6896'

Qual è il modo corretto di forzare il framework per caricare i miei assiemi di feature con versione incrementata?


EDIT: Così, mentre in realtà non risolve la questione specifica avevo chiesto, il suggerimento di Ryan risolto il mio problema pratico di essere solo in grado di contrassegnare le assemblee con le informazioni SVN legate, pur mantenendo la capacità di caricare correttamente i miei assembly nel mondo FeatureReceiver di SharePoint.

risposta

8

Ciò che si potrebbe fare è mantenere la versione Assembly uguale (almeno se è una "versione principale compatibile") ma utilizzare la stessa tecnica per inserire il numero di revisione SVN nella proprietà AssemblyFileVersion.

Quindi non sarà necessario continuare ad aggiornare i file di criteri di Publisher.

KB556041 - How to use Assembly Version and Assembly File Version

Supponiamo che si sta costruendo un assembly quadro per il progetto che viene utilizzato da molti sviluppatori, mentre la costruzione dei gruppi di applicazioni. Se rilasci una nuova versione di assemblaggio molto frequentemente ... e se gli assembly hanno un nome sicuro, gli sviluppatori dovranno cambiare il riferimento ogni volta che si rilascia un nuovo assembly ... Un'opzione migliore in tali scenari di gruppo chiuso e volatile sarebbe quella di risolvere il problema 'Assembly Version' e modifica solo la 'Versione file Assembly'.

SO - What are the differences between AssemblyVersion and AssemblyFileVersion

+0

Grazie ... ho guardato la politica editore e mi è sembrato un po 'di pollo e uova per me, e mi sembrava di avere ancora di conoscere la versione di destinazione. Avevo anche giocato con AssemblyFileVersion e questo mi dà davvero quello di cui ho bisogno: solo un modo per taggare i miei assiemi con le mie informazioni di revisione SVN. Grazie. –

1

È possibile utilizzare un publisher policy per reindirizzare alla nuova versione.

Problemi correlati