【问题标题】:SharePoint features: How can I use wildcard assembly versioning?SharePoint 功能:如何使用通配符程序集版本控制?
【发布时间】:2010-11-05 08:05:56
【问题描述】:

我认为这可能是一个通用的 .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 版本的文件:

功能 '7b5d86e8-17dc-4943-8f4e-ad1068daf4f9' 无法安装,因为 加载事件接收器程序集 “HappyFeature,版本=1.0。., 文化=中性, PublicKeyToken=d772fbab82fe6896" 失败的: System.IO.FileNotFoundException:可以 不加载文件或程序集 'HappyFeature,版本=1.0.0.0, 文化=中性, PublicKeyToken=d772fbab82fe6896' 或 它的依赖项之一。系统 找不到指定的文件。文件 名称:'HappyFeature,版本=1.0.0.0, 文化=中性, PublicKeyToken=d772fbab82fe6896'

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


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

【问题讨论】:

    标签: .net sharepoint assembly-resolution


    【解决方案1】:

    您可以做的是保持 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

    【讨论】:

    • 谢谢...我查看了出版商政策,这对我来说似乎有点鸡和蛋,我似乎仍然需要知道目标版本。我也刚刚玩过 AssemblyFileVersion,这确实给了我我需要的东西:只是一种用我的 SVN 修订信息标记我的程序集的方法。谢谢。
    【解决方案2】:

    您可以使用publisher policy 重定向到新版本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 2010-11-16
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      相关资源
      最近更新 更多