我正在尝试将解决方案从wsp文件导入到Visual Studio 2010中的SharePoint 2010项目。解决方案文件来自我使用网站的“安全模板”选项导出的网站模板。
选择我导出的解决方案文件并指定要导入的单个项目(我选择全部)后,Visual Studio开始导入解决方案。完成最后一项后,它会显示一条错误消息:
SharePoint解决方案导入操作已完成,但有错误。因此,项目可能无法成功部署。
要检查导入是否正常或已损坏,我再次打包解决方案,并尝试通过创建新的网站集,通过代码重新部署解决方案,将解决方案文件(与Visual Studio打包)作为用户解决方案(沙盒解决方案)上传到网站集,激活解决方案的所有功能,并将Web模板应用于网站集的根网站。在应用模板时,需要很长时间才能发生SPException,并显示以下消息:
<nativehr>0x80131600</nativehr><nativestack></nativestack>
内部异常的消息并不是更好,它说:
<nativehr>0x8107058a</nativehr><nativestack></nativestack><nativehr>0x80131600</nativehr><nativestack></nativestack>
堆栈跟踪:
[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并再次打包。这次可以应用Web模板而不会出现任何错误。
所以当我将解决方案导入Visual Studio或者我再次打包解决方案时,我想知道我做错了什么。
答案 0 :(得分:1)
如果在导入后检查Visual Studio输出窗口,您可能会在“SharePoint工具”输出中看到类似的内容
要导入的项目总数:161 成功导入的项目总数:158 由于错误而未导入的项目总数:3
然后,如果向上滚动详细说明导入内容的行,您将看到每个失败项目的描述性错误。
就我而言,它是
导入模块:_catalogswfpubApproval - SharePoint 2010_Features \ ReviewWorkflowsSPD1033 ... 导入“Module:_catalogswfpubApproval - SharePoint 2010_Features \ ReviewWorkflowsSPD1033”
时出错指定的路径,文件名或两者都太长。完全限定的文件名必须少于260个字符,目录名必须少于248个字符。
这很清楚。
我只是使用靠近系统根目录的项目路径重新创建项目,并成功导入。