.net - SharePoint 功能 : How can I use wildcard assembly versioning?

标签 .net sharepoint assembly-resolution

我认为这可能是一个通用的 .NET 程序集加载问题,但在我的特定情况下,我希望我的 SharePoint 功能指向一个程序集,其版本控制与正确的 SVN 修订号相关联。

我的程序集现在已按照 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 版本的文件:

Feature '7b5d86e8-17dc-4943-8f4e-ad1068daf4f9' could not be installed because the loading of event receiver assembly "HappyFeature, Version=1.0.., Culture=neutral, PublicKeyToken=d772fbab82fe6896" failed: System.IO.FileNotFoundException: Could not load file or assembly 'HappyFeature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d772fbab82fe6896' or one of its dependencies. The system cannot find the file specified. File name: 'HappyFeature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d772fbab82fe6896'



强制框架加载我的增量版本功能程序集的正确方法是什么?

编辑:因此,虽然我实际上并没有解决我提出的具体问题,但 Ryan 的建议解决了我的实际问题,即只能使用 SVN 相关信息标记我的程序集,同时保留在 SharePoint 中成功加载我的程序集的能力FeatureReceiver 世界。

最佳答案

您可以做的是保持 AssemblyVersion 相同(至少在它是“兼容的主要版本”时),但使用相同的技术将 SVN 修订号放入 AssemblyFileVersion 属性中。

这样您就不必不断更新发布者政策文件。

KB556041 - How to use Assembly Version and Assembly File Version

假设您正在为您的项目构建一个框架程序集,许多开发人员在构建应用程序程序集时使用该程序集。如果您非常频繁地发布新版本的程序集......并且如果程序集具有强名称,则开发人员每次发布新程序集时都必须更改引用......在这种封闭组和易变场景中,更好的选择是修复“程序集版本”并仅更改“程序集文件版本”。

SO - What are the differences between AssemblyVersion and AssemblyFileVersion

关于.net - SharePoint 功能 : How can I use wildcard assembly versioning?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1035284/

相关文章:

Sharepoint 2013 - 无法从导航中隐藏子网站

c# - 获取组装所需的组件?

.net - 在运行时动态加载程序集依赖项时出现问题

c# - 解析程序集异常 : Attempt to load an unverifiable executable with fixups

c# - 如何在数据库绑定(bind)应用程序之间进行有效通信?

c# - 在循环中访问相似的命名属性

sharepoint - 将自定义 Web 服务部署到 sharepoint 服务器(2007/2010)?

sharepoint - 将 SharePoint 用户写入 SharePoint 列表中的用户字段的正确方法

c# - 如何通过 HtmlDocument.InvokeScript 将对象作为参数传递给 javascript

asp.net - 在ASP.Net MVC应用程序中的哪里放置初始化代码?