Я пытаюсь импортировать решение из wsp-файла в проект SharePoint 2010 в Visual Studio 2010. Файл решения получается из шаблона сайта, который я экспортировал, используя опцию «Safe as template» веб-сайта.
После выбора файла решения, которое я экспортировал, и указания отдельных элементов, которые я хочу импортировать (я выбираю все), Visual Studio начинает импортировать решение. Когда он завершает работу с последним элементом, отображается сообщение об ошибке:
Операция импорта решения SharePoint завершена, но с ошибками. В результате проект может не развернуться успешно.
Чтобы проверить, был ли импорт в порядке или поврежден, я снова упаковал решение и попытался повторно развернуть его с помощью кода, создав новую коллекцию веб-сайта, загрузив файл решения (в комплекте с Visual Studio) как пользовательское решение (изолированное решение) коллекция веб-сайтов, активация всех функций решения и применение веб-шаблона к корневому веб-сайту семейства веб-сайтов. В точке, где применяется шаблон, требуется много времени, пока не произойдет SPException со следующим сообщением:
<nativehr>0x80131600</nativehr><nativestack></nativestack>
Сообщение внутреннего исключения на самом деле не лучше, оно говорит:
<nativehr>0x8107058a</nativehr><nativestack></nativestack><nativehr>0x80131600</nativehr><nativestack></nativestack>
StackTrace:
[COMException (0x8107058a): <nativehr>0x8107058a</nativehr><nativestack></nativestack><nativehr>0x80131600</nativehr><nativestack></nativestack>]
Microsoft.SharePoint.Library.SPRequestInternalClass.ApplyWebTemplate(String bstrUrl, String bstrWebTemplateContent, Int32 fWebTemplateContentFromSubweb, Int32 fDeleteGlobalListsWithWebTemplateContent, String& bstrWebTemplate, Int32& plWebTemplateId) +0
Microsoft.SharePoint.Library.SPRequest.ApplyWebTemplate(String bstrUrl, String bstrWebTemplateContent, Int32 fWebTemplateContentFromSubweb, Int32 fDeleteGlobalListsWithWebTemplateContent, String& bstrWebTemplate, Int32& plWebTemplateId) +172
[SPException: <nativehr>0x80131600</nativehr><nativestack></nativestack>]
Microsoft.SharePoint.SPGlobal.HandleComException(COMException comEx) +27257906
Microsoft.SharePoint.Library.SPRequest.ApplyWebTemplate(String bstrUrl, String bstrWebTemplateContent, Int32 fWebTemplateContentFromSubweb, Int32 fDeleteGlobalListsWithWebTemplateContent, String& bstrWebTemplate, Int32& plWebTemplateId) +27639363
Microsoft.SharePoint.SPWeb.ApplyWebTemplate(String strWebTemplate) +1218
Microsoft.SharePoint.ApplicationPages.TemplatePickerUtil.ApplyWebTemplateAndRedirect(SPWeb Web, String strWebTemplate, Nullable`1 bSharedNav, Boolean bOnTopNav, Boolean bOnQuickLaunch, Page page, Boolean bDeleteOnError) +1870
Microsoft.SharePoint.ApplicationPages.TemplatePickPage.BtnSubmit_Click(Object sender, EventArgs e) +129
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +115
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +140
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +29
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2981
Чтобы проверить, что ошибка является результатом процесса импорта или упаковки решения, я использовал тот же код для создания коллекции веб-сайтов, но на этот раз с использованием исходного wsp-файла, который не был импортирован в Visual Studio и снова упакован. И на этот раз веб-шаблон может быть применен без каких-либо ошибок.
Поэтому мне интересно, что я делаю неправильно, когда я импортировал решение в Visual Studio или когда я снова упаковал решение.