Произошла ошибка в шаге развертывания «Activate»: ссылка на объект не установлена на экземпляр объекта: ошибка приемника функций

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/109937

Вопрос

Я критировал визуальную веб-часть в SP 2013. Это нужен список SharePoint.Так написал ниже код в веб-часть. Когда я развернул решение, которое я получаю сообщение об ошибке, произошедшая ошибка в шаге развертывания «Особенности активации»: ссылка на объект не установлена на экземпляр объекта.Я устанавливаю ActivateOndefault= «False» и AllouseForceInstall= «True». Посмотрите на файл My Hapity Mainest.

<Feature xmlns="http://schemas.microsoft.com/sharepoint/" Title="SharePointProject1 Feature1" ActivateOnDefault="FALSE" AlwaysForceInstall="TRUE" Id="8f7163d5-6c65-40d8-9045-8f74192f07d7" ReceiverAssembly="SharePointProject1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9c2f0c3a8e22f6a0" ReceiverClass="SharePointProject1.Features.Feature1.Feature1EventReceiver" Scope="Site">
  <ElementManifests>
    <ElementManifest Location="VisualWebPart1\Elements.xml" />
    <ElementFile Location="VisualWebPart1\VisualWebPart1.webpart" />
  </ElementManifests>
</Feature>
.

Это мой функция1Eventreceiver код.

SPWeb spWeb = properties.Feature.Parent as SPWeb;
            SPList laptopList = spWeb.Lists["Laptops"];
            if (laptopList != null)
            {
                laptopList.Delete();

            }
            SPListCollection lists = spWeb.Lists;
            lists.Add("Laptops", "The Laptops", SPListTemplateType.GenericList);
            laptopList = spWeb.Lists["Laptops"];


            laptopList.Fields.Add("Name", SPFieldType.Text, true);
            laptopList.Fields.Add("Model", SPFieldType.Text, true);
            laptopList.Fields.Add("Image", SPFieldType.URL, false);
.

Я могу развернуть, если у меня есть только ниже код

 SPWeb spWeb = properties.Feature.Parent as SPWeb;
.

Это было полезно?

Решение

Визуальная веб-часть должна быть включена в функцию Served Scoped, в результате свойства результата. Измените.Вам необходимо проверить область функции и использовать код ниже, если прицел находится сайт.

SPSite site = properties.Feature.Parent as SPSite;
if (site != null){
    SPWeb web = site.RootWeb;
    SPList laptopList = web.Lists["Laptops"];
    ...
}
.

Другие советы

Web.Lists [] вызовет исключение, если список там нет.

Используйте TryGegetList вместо>

работал на меня после Изменена уровень области качества от сайта на web

 Введите описание изображения здесь

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top