Cannot enable feature with feature receiver via PowerShell
I've got a problem where I can enable a feature the UI and everything works as expected through sit开发者_Python百科e settings, but if I try and enable the feature via the Sharepoint powershell (which we are doing as part of a scripted deployment), I get the following:
Enable-SPFeature : Failed to create receiver object from assembly "xxxxx, Version=1.0.0.0, Culture=neutral, PublicKeyToken=967e6960f5af91e6 ", class "xxxxx.EventReceiver" for feature "xxxxx.Public.Search" (ID: 026d7c45-a359-4550-822d-1a6c35e58e0 d).: System.ArgumentNullException: Value cannot be null. Parameter name: type
Does anyone know why this would occur, or some things I should check? The feature definition is definitely correct (since deploying it through the UI works as expected, and I've also double checked the PublicKeyToken is correct etc etc), and restarting the services and iisreset doesn't enable me to use Enable-SPFeature either.
I have the same issue. The curious thing is when you open up a new SP2010 powershell window and reissue the same command the assembly is found without any problems. See: http://khurramdotnet.blogspot.com/2011/01/enable-spfeature-command-throwing.html
Try this: go to the Control Panel, click on "Programs", click on "Programs and Features", select "Microsoft SharePoint Server 2010" (or whatever you have installed), click "Change", select "Repair" and click "Continue". This is what helped me.
Try this: http://geoffwebbercross.blogspot.ca/2011/06/failed-to-create-receiver-object-from.html It worked for me, I did not have to change a stitch in my code / solution
I had this yesterday, turns out the feature name and the feature receiver name werent matching. To resolve it I copied the FeatureActivated code into notepad (entire code block) or whichever events it is you have coded.
- Copy the entire event code that you have written I.e. the FeatureActivated method (including signature)
- Remove the EventReceiver from your project.
- Add a new event received to your project (you can double check the name for changes)
- Paste the Event code back into the event receiver.
I use the following code to deploy using 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
}
Don't use the "normal" PowerShell, use the SharePoint 2010 Management Shell instead.
精彩评论