2
  Guid featureId = new Guid("0af5989a-3aea-4519-8ab0-85d91abe39ff"); 

      ClientContext clientContext = new ClientContext("http://mysite:786/"); 

      Site clientSite = clientContext.Site; 
      clientContext.Load(clientSite); 

      FeatureCollection clientSiteFeatures = clientSite.Features; 
      clientContext.Load(clientSiteFeatures); 
      clientContext.ExecuteQuery(); 

      // Activate the feature 
      clientSite.Features.Add(featureId, true, FeatureDefinitionScope.Site); 
      //clientSiteFeatures.Remove(featureId, false); 
      clientContext.ExecuteQuery(); 
      MessageBox.Show("Success"); 

當我運行這段代碼,我得到異常:設有 ID「0af5989a-3aea-4519-8ab0-85d91abe39ff」未安裝在農場和 不能被添加到範圍。未能激活使用COM功能在SharePoint 2010

我從鏈接http://social.technet.microsoft.com/wiki/contents/articles/7695.list-of-sharepoint-2010-features-id-displayname-and-scopes.aspx

請指導有這個功能ID。

問候, 維克蘭特拉吉Behal

回答

0

爲了激活使用客戶端對象模型的特徵,它必須使用沙箱溶液進行部署。這是通過場解決方案部署的特性無法通過客戶端對象模型

2

被激活根據MSDNFeatureCollection.Add方法具有以下簽名

public Feature Add(
    Guid featureId, 
    bool force, 
    FeatureDefinitionScope featdefScope 
) 

其意在增加該功能的激活功能和收集返回添加的功能

參數FeatureDefinitionScope用於指定功能定義的功能範圍。 同時該文件說:

它必須具有的FeatureDefinitionScope.Site值或 FeatureDefinitionScope.Farm

這基本上意味着,FeatureCollection.Add不爲featdefScope接受FeatureDefinitionScope.Web價值,因此該方法功能激活使用不支持Web範圍

你的情況,似乎您試圖啓動功能與不通過CSOM


如何驗證功能範圍支持(例如:網頁)範圍

$feature = get-spfeature featureId 
if ($feature -eq $null -or $feature -eq "") { 
    echo "no feature found with id" 
} else { 
    echo ("feature found. Scope is " + $feature.Scope) 
} 
3
FeatureDefinitionScope.None 

這爲我激活了一個web範圍的功能。

0
FeatureDefinitionScope.None 

也適用於激活網站集功能。

添加功能的方式(Sandbox,Farm Solution)無關緊要。

相關問題