事件接收器组件的故障加载

时间:2011-04-27 07:10:02

标签: sharepoint

我在feature.xml

中有以下代码段
<Feature Id="0c272f81-49c0-440a-a544-677d51a8ffe4"
    ReceiverAssembly="FeaturedMasterPage, Version 1.0.0.0, Culture=Neutral, PublicKeyToken=9f4da00116c38ec5"
    ReceiverClass="FeaturedMasterPage.FeatureEventReciever"
    Title="Branding202" 
    Scope="Web" 
    Version="1.0.0.0" 
    Hidden="FALSE" 
    DefaultResourceFile="core" 
    xmlns="http://schemas.microsoft.com/sharepoint/">
  <ElementManifests>
    <ElementManifest Location="Branding202\Module.xml" />
    <ElementFile Location="Branding202\Branding202.Master" />
  </ElementManifests>
</Feature>

我的FeatureEventReciever.cs说: -

using System;
using System.Collections.Generic;
using Microsoft.SharePoint;
using System.Text;
using System.Diagnostics;

namespace FeaturedMasterPage
{
    class FeatureEventReciever:SPFeatureReceiver
    {
        public override void FeatureActivated(SPFeatureReceiverProperties properties)
        {
            try
            {
                //My Code
            }
            catch (Exception)
            {
                throw;
            }
        }

        public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
        {
            try
            {
                //My Code
            }
            catch (Exception)
            {

                throw;
            }
        }

        public override void FeatureInstalled(SPFeatureReceiverProperties properties) { }

        public override void FeatureUninstalling(SPFeatureReceiverProperties properties) { }
    }
}

当我尝试部署解决方案时......它给出了以下错误: -

  

错误1功能'0c272f81-49c0-440a-a544-677d51a8ffe4'无法安装,因为事件接收器程序集“FeaturedMasterPage,Version 1.0.0.0,Culture = Neutral,PublicKeyToken = 9f4da00116c38ec5”的加载失败:System.IO。 FileLoadException:无法加载文件或程序集'FeaturedMasterPage \,版本1.0.0.0 \,Culture \ = Neutral \,PublicKeyToken \ = 9f4da00116c38ec5'或其依赖项之一。给定的程序集名称或代码库无效。 (HRESULT异常:0x80131047)   文件名:'FeaturedMasterPage \,版本1.0.0.0 \,Culture \ =中性\,PublicKeyToken \ = 9f4da00116c38ec5'      在System.Reflection.AssemblyName.nInit(Assembly&amp; assembly,Boolean forIntrospection,Boolean raiseResolveEvent)      在System.Reflection.Assembly.InternalLoad(String assemblyString,Evidence assemblySecurity,StackCrawlMark&amp; stackMark,Boolean forIntrospection)      在System.Reflection.Assembly.Load(String assemblyString)      在Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

    0   0   

我已经花了一整天时间对此进行排查。我已经使用gacutil安装了dll。

任何帮助都将不胜感激。

4 个答案:

答案 0 :(得分:2)

也许这只是StackOverflow自动格式化中出现的问题,但我没有在程序集的全名中看到“等于”符号(在ReceiverAssembly="...."部分)。

应该是

FeaturedMasterPage, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=9f4da00116c38ec5

我看到的是

FeaturedMasterPage, Version 1.0.0.0, Culture=Neutral, PublicKeyToken=9f4da00116c38ec5

答案 1 :(得分:0)

不幸的是,我怀疑问题是你的代码,而是路径,只有你可以修复。

  1. 验证您的程序集名称。
  2. 验证您的完整班级名称。
  3. 确认您的程序集已包含在解决方案文件中。
  4. 如果你超过了第三,那么这是一个SharePoint问题,但从错误来判断,我几乎可以保证你只是一个不好的参考。

答案 2 :(得分:0)

您可以尝试通过PowerShell手动加载程序集吗?

答案 3 :(得分:0)

通过右键单击项目名称&gt;&gt;尝试重命名程序集属性&gt;&gt;从“应用程序”选项卡中,将“程序集名称”和“默认名称空间”重命名为同一名称。我之前遇到过这个问题,那就是它的解决方案。希望它可以帮到你。