5

我遇到了一个问题,我可以在 UI 中启用一个功能,并且一切都可以通过站点设置按预期工作,但是如果我尝试通过 Sharepoint powershell(我们正在作为脚本部署的一部分)启用该功能,我会得到以下:

Enable-SPFeature:无法从程序集“xxxxx,Version=1.0.0.0,Culture=neutral,PublicKeyToken=967e6960f5af91e6”,功能“xxxxx.Public.Search”的类“xxxxx.EventReceiver”创建接收器对象(ID:026d7c45-a359 -4550-822d-1a6c35e58e0 d).:System.ArgumentNullException:值不能为空。参数名称:类型

有谁知道为什么会发生这种情况,或者我应该检查一些事情?功能定义绝对正确(因为通过 UI 部署它可以按预期工作,并且我还仔细检查了 PublicKeyToken 是否正确等),并且重新启动服务和 iisreset 也不使我能够使用 Enable-SPFeature。

4

5 回答 5

8

我有同样的问题。奇怪的是,当您打开一个新的 SP2010 powershell 窗口并重新发出相同的命令时,发现程序集没有任何问题。见: http: //khurramdotnet.blogspot.com/2011/01/enable-spfeature-command-throwing.html

于 2011-05-06T09:21:46.670 回答
1

试试这个:转到控制面板,单击“程序”,单击“程序和功能”,选择“Microsoft SharePoint Server 2010”(或您已安装的任何内容),单击“更改”,选择“修复”并单击“继续”。这对我有帮助。

于 2010-11-07T23:24:28.337 回答
1

试试这个:http ://geoffwebbercross.blogspot.ca/2011/06/failed-to-create-receiver-object-from.html 它对我有用,我不必在我的代码/解决方案中更改针脚

于 2014-01-25T07:31:17.710 回答
0

我昨天有这个,结果功能名称和功能接收器名称不匹配。为了解决它,我将 FeatureActivated 代码复制到记事本(整个代码块)或您已编码的任何事件中。

  1. 复制您编写的整个事件代码,即 FeatureActivated 方法(包括签名)
  2. 从您的项目中删除 EventReceiver。
  3. 将收到的新事件添加到您的项目中(您可以仔细检查名称以进行更改)
  4. 将事件代码粘贴回事件接收器。

我使用以下代码使用 powershell 进行部署

    if(($Solution -ne $null) -and ($Solution.ContainsWebApplicationResource))
    {
        if ($FeatureScope -eq "Web")
        {
            Install-SPSolution $SolutionName -url $siteUrl -GACDeployment -Confirm:$false
        }
        else
        {
            Install-SPSolution $SolutionName -AllWebApplications -GACDeployment -Confirm:$false
        }
    }
    else
    {
        Install-SPSolution $SolutionName -GACDeployment -Confirm:$false
    }
    while($Solution.Deployed-eq$false)
    {
        Start-Sleep 2
        Write-Host "." -NoNewline
    }
于 2010-09-16T10:50:15.480 回答
0

不要使用“普通”PowerShell,而是使用 SharePoint 2010 命令行管理程序。

于 2011-03-09T09:30:39.070 回答