PowerShell経由で機能レシーバーを使用して機能を有効にすることはできません
-
03-10-2019 - |
質問
機能を有効にすることができる問題があり、すべてがサイト設定を通じて予想どおりに機能しますが、SharePoint PowerShell(スクリプト展開の一部として行っている)を介して機能を有効にしようとすると、以下:
enable-spfeature:アセンブリ "xxxxx、version = 1.0.0.0、culture = neutral、publickeytoken = 967e6960f5af91e6"、class "xxxxx.eventreceiver" for feature "xxxxx.public.search"(id:026d7c45-a3599 -4550-822D-1A6C35E58E0 d)。:system.ArgumentNullexception:値はnullになることはできません。パラメーター名:タイプ
なぜこれが起こるのか、または私がチェックすべきいくつかのことを知っている人はいますか?機能の定義は間違いなく正しいです(予想通りUIを介して展開すると、PublicKeyTokenは正しいなどを再確認しました)。
解決
同じ問題があります。奇妙なことは、新しい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-create-receiver-object-from.htmlそれは私のために働きました、私は自分のコード /ソリューションのステッチを変更する必要はありませんでした
昨日これを持っていましたが、機能名と機能レシーバー名が一致していません。それを解決するために、私は機能ureateされたコードをメモ帳(コードブロック全体)またはコードしたイベントにコピーしました。
- あなたが書いたイベントコード全体をコピーしますIEはfealteractivatedメソッド(署名を含む)
- プロジェクトからEventReceiverを削除します。
- プロジェクトに受け取った新しいイベントを追加します(変更の名前を再確認できます)
- イベントコードをイベントレシーバーに戻します。
次のコードを使用して、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マネジメントシェルを使用してください。