Chr*_*mer 7 .net sharepoint assembly-resolution
我认为这可能是一个通用的.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>
Run Code Online (Sandbox Code Playgroud)
当我这样做时,SharePoint当然找不到程序集,因为强名称与此处描述的1.0.0.0版本不匹配.我在程序集中的当前版本是1.0.4479.26553,所以我希望我的功能能够自动找到类似编号的程序集版本.我怎样才能做到这一点?
我有点天真地试过这样的事情:
ReceiverAssembly="HappyFeature, Version=1.0.*, Culture=neutral, PublicKeyToken=d772fbab82fe6896"
Run Code Online (Sandbox Code Playgroud)
和
ReceiverAssembly="HappyFeature, Version=1.0.*.*, Culture=neutral, PublicKeyToken=d772fbab82fe6896"
Run Code Online (Sandbox Code Playgroud)
但是当我尝试部署我的解决方案时,它似乎仍然在寻找1.0.0.0版本的文件:
功能"7b5d86e8-17dc-4943-8f4e-ad1068daf4f9"无法安装,因为事件接收器组件的装载"HappyFeature,版本= 1.0 .,文化=中性公钥= d772fbab82fe6896"失败:System.IO.FileNotFoundException:未能加载文件或程序集'HappyFeature,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = d772fbab82fe6896'或其依赖项之一.该系统找不到指定的文件.文件名:'HappyFeature,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = d772fbab82fe6896'
强制框架加载增量版本功能组件的正确方法是什么?
编辑:所以,虽然我没有真正解决我问过的具体问题,但Ryan的建议解决了我的实际问题,即能够使用SVN相关信息标记我的程序集,同时保留在SharePoint中成功加载程序集的能力FeatureReceiver世界.
您可以做的是保持AssemblyVersion相同(至少在它的'兼容主要版本'时),但使用相同的技术将SVN修订版号放入AssemblyFileVersion属性.
然后,您不必继续更新Publisher Policy文件.
假设您正在为项目构建框架程序集,许多开发人员在构建应用程序程序集时使用该程序集.如果您经常发布新版本的程序集......并且如果程序集名称很强,那么每次发布新程序集时,开发人员都必须更改引用...在这样的封闭组和易失性方案中,更好的选择是修复'汇编版本'并仅更改'汇编文件版本'.
SO - AssemblyVersion和AssemblyFileVersion之间有什么区别
归档时间: |
|
查看次数: |
4993 次 |
最近记录: |