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

Enable-spfeature:无法从汇编“ xxxxx,版本= 1.0.0.0,culture =中性,publicKeytoken = 967EE6960F5AF91E6”,类“ xxxxx.eventreceiver” for feature“ -4550-822D-1A6C35E58E0 D):system.ArgumentNullexception:值不能为null。参数名称:类型

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

有帮助吗?

解决方案

我有同样的问题。奇怪的是,当您打开一个新的SP2010 PowerShell窗口并重新发行同一命令时,该组件是没有任何问题的。看:http://khurramdotnet.blogspot.com/2011/01/enable-spfeature-command-throwing.html

其他提示

尝试以下尝试:转到控制面板,单击“程序”,单击“程序和功能”,选择“ Microsoft Sharepoint Server 2010”(或您已安装的任何内容),单击“更改”,选择“修复”,然后单击“”继续”。这就是帮助我的原因。

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

我昨天有这个,事实证明功能名称和功能接收器名称与匹配。为了解决它,我将特征反应的代码复制到记事本(整个代码块)或您已编码的任何事件中。

  1. 复制您编写的整个事件代码,即特征反应的方法(包括签名)
  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
    }

不要使用“普通” PowerShell,而是使用SharePoint 2010 Management Shell。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top