1

機能を作成しましたが、インストール時にアクティブ化する必要があります。これはコードです:

public override void FeatureInstalled(SPFeatureReceiverProperties properties)
{
    SPWeb web = properties.Feature.Parent as SPWeb;
    SPWebTemplateCollection existingWebTemps = web.GetAvailableWebTemplates(1033);
    Collection<SPWebTemplate> newWebTemps = new Collection<SPWebTemplate>();        
    for (int i = 0; i < existingWebTemps.Count; i++)
    {
        if (!existingWebTemps[i].Title.ToLower().Contains("blog"))
        {
            newWebTemps.Add(existingWebTemps[i]);
        }
    }
    web.SetAvailableWebTemplates(newWebTemps, 1033);
    web.Update();

    string fID = "aeb3aa40-8a42-4577-bed2-a0e65eff8b04";
    Guid gfID = new Guid(fID);
    SPFeatureCollection featatv = web.Features;
    Boolean control = true;
    foreach (SPFeature myfeat in featatv)
    {
        if (myfeat.DefinitionId == gfID)
        {
            control = false;
        }
    }
    if (control == true)
    {
        web.Features.Add(gfID);
    }

    web.Dispose();
}

デプロイすると、次のエラーが発生します。

デプロイメントステップ「ソリューションの追加」でエラーが発生しました:オブジェクト参照がオブジェクトのインスタンスに設定されていません。

このエラーが発生する理由がわかりません。理由について何か考えはありますか?ありがとうございました!

4

0 に答える 0