我认为这可能是一个通用的 .NET 程序集加载问题,但在我的特定情况下,我希望我的 SharePoint 功能指向一个程序集,其版本控制与正确的 SVN 修订号相关联。
我的程序集现在按本文所述进行了版本控制。我希望能够将我的 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,版本=1.0 ...... ,文化=中性,PublicKeyToken=d772fbab82fe6896”失败:System.IO.FileNotFoundException:无法加载文件或程序集 'HappyFeature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d772fbab82fe6896' 或其依赖项之一。该系统找不到指定的文件。文件名:'HappyFeature,版本=1.0.0.0,文化=中性,PublicKeyToken=d772fbab82fe6896'
强制框架加载我的增量版本功能程序集的正确方法是什么?
编辑:所以,虽然我实际上并没有解决我提出的具体问题,但 Ryan 的建议解决了我的实际问题,即能够使用 SVN 相关信息标记我的程序集,同时保留在 SharePoint 中成功加载我的程序集的能力FeatureReceiver 世界。