2009-06-23 17 views
7

我認爲這很可能是一個通用的.NET程序集加載問題,但在我的具體情況下,我希望我的SharePoint功能指向一個程序集,其版本與正確的SVN修訂版號相關聯。現在SharePoint功能:如何使用通配符程序集版本控制?

我的組件版本爲this article提及。我希望能夠將我的SharePoint功能配置爲使用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> 

當我這樣做時,SharePoint當然找不到程序集,因爲強名稱與此處描述的1.0.0.0版本不匹配。我的程序集當前版本是1.0.4479.26553,所以我希望我的功能能夠自動查找具有相似編號的程序集版本。我怎樣才能做到這一點?

我有點天真地試圖這樣的事情:

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

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

但是,當我嘗試部署我的解決方案,因此,它似乎仍然會尋找一個文件與1.0 .0.0版本:

功能 '7b5d86e8-17dc-4943-8f4e-ad1068daf4f9' 無法安裝,因爲 加載的事件接收器組件 「HappyFeature,Version = 1.0。 , 文化=中立, 公鑰= d772fbab82fe6896" 失敗: System.IO.FileNotFoundException:找不到能 無法加載文件或程序集 'HappyFeature,版本= 1.0.0.0, 文化=中立, 公鑰= d772fbab82fe6896' 或它依賴 一個 找不到指定的文件系統文件 名: 'HappyFeature,版本= 1.0.0.0, 文化=中立, 公鑰= d772fbab82fe6896'

強制框架加載我的增量版本功能部件的正確方法是什麼?


編輯:所以,雖然我並沒有真正解決的具體問題,我問,瑞安的建議解決了我剛剛能夠與SVN相關信息標記我的組件,同時保留能力的實際問題在SharePoint FeatureReceiver世界中成功加載我的程序集。

回答

8

你可以做的是保持的AssemblyVersion相同的(至少同時它是一個「兼容的主要版本」),但用同樣的方法把SVN版本號進入的AssemblyFileVersion屬性。

那麼你就不必不斷更新發佈政策文件。

KB556041 - How to use Assembly Version and Assembly File Version

假設您正在爲您的項目,該項目在構建應用程序組件所使用的很多開發商的框架組件。如果你非常頻繁地發佈新版本的程序集......並且如果程序集是強命名的,那麼開發人員將不得不在每次發佈新程序集時更改引用......在這樣的封閉組和更動盪的場景中,更好的選擇是修復'Assembly Version',只更改'Assembly File Version'。

SO - What are the differences between AssemblyVersion and AssemblyFileVersion

+0

謝謝...我看着出版商策略,它似乎有點雞和雞蛋給我,我似乎還是要知道目標版本。我也玩過AssemblyFileVersion,確實給了我需要的東西:只是一種用我的SVN修訂版信息來標記我的程序集的方法。謝謝。 – 2009-06-23 21:46:21

相關問題