2010-09-16 17 views
5

aracılığıyla etkinleştirilemiyor Bir özelliğin kullanıcı arabirimini etkinleştirebildiğim bir sorun var ve her şey site ayarları yoluyla beklendiği gibi çalışıyor, ancak bu özelliği Sharepoint powershell aracılığıyla (bir metne dağıtımının bir parçası) olarak yapıyor, aşağıdaki alıyorum:Özellik alıcısı özelliği PowerShell

Enable-SPFeature: montaj "xxxxx dan alıcı nesnesi, Sürüm = 1.0.0.0 oluşturulamadı, Culture = neutral, PublicKeyToken = 967e6960f5af91e6 " için" xxxxx.EventReceiver "sınıfı" xxxxx.Public.Search "(ID: 026d7c45-a359-4550-822d-1a6 için" sınıfı " c35e58e0 d) .: System.ArgumentNullException: Değer boş olamaz. Parametre adı: tip

tip

Bunun neden olacağını veya kontrol etmem gereken bazı şeyleri bilen var mı? Özellik tanımı kesinlikle doğrudur (UI aracılığıyla beklendiği gibi çalışır, ve ben de PublicKeyToken'ın doğru olduğunu kontrol ettim vs vs) ve hizmetleri yeniden başlatırım ve Enable-SPFeature'ı kullanmamı sağlayan iisreset.

+0

Ben aynı sorun var bir dikiş değiştirmek zorunda değildi. Hata olmadan web kullanıcı arayüzünden gelen özelliği etkinleştirebilirim, ancak PowerShell'ten etkinleştirme-spfeature ile çalışamıyorum. Bu, yeni eklenmiş olay alıcılarıyla (olayların içinde herhangi bir kod olmadan) ve web uygulamalarına ayarlanan montaj dağıtım hedefi ile site düzeyinde belirlenen tüm özellikler için de geçerlidir. –

cevap

0

Bunu dün yaşadım, özellik adı ve özellik alıcı adı werent eşleştirmesi çıkıyor. Çözmek için FeatureActivated kodunu not defterine (kod bloğunun tamamına) veya kod yazdığınız olaylara kopyaladım.

  1. adresinin yazdığı tüm olay kodunu kopyalayın. FeatureActivated yöntem ( imzası dahil)
  2. Projenizden EventReceiver 'u kaldırın.
  3. projenize alınan yeni bir etkinlik ekleme
  4. geri olay alıcısı içine Olay kodu yapıştırın (eğer çift değişiklikler için adını kontrol edebilirsiniz). "Programlar ve Özellikler" tıklayın "Programlar" seçeneğini tıklayın, Denetim Masası'na gidin "Microsoft SharePoint Server belirleyin:

Bunu deneyin 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 
    } 
+0

Bunu denedim ve işe yaramadı - Olay alıcısı sınıfının adının doğru olduğundan eminim, çünkü UI aracılığıyla konuşlandırmaya çalışırken gayet iyi çalışıyor ancak Powershell ... –

1

kullanarak dağıtmak için aşağıdaki kodu kullanabilirsiniz 2010 "(veya ne yüklediyseniz)," Değiştir "i tıklayın," Onar "ı seçin ve" Devam "ı tıklayın. Bu bana yardım etti.

0

"Normal" PowerShell'i kullanmayın, bunun yerine SharePoint 2010 Yönetim Kabuğu'nu kullanın.

+0

Üzgünüz, daha spesifik oldu - Kesinlikle Sharepoint Powershell kullanıyordum. –

İlgili konular