当前位置: 代码迷 >> SharePoint >> SP2010 的Solution 加到SP2013後不能執行了,该如何解决
  详细解决方案

SP2010 的Solution 加到SP2013後不能執行了,该如何解决

热度:143   发布时间:2016-05-02 07:03:53.0
SP2010 的Solution 加到SP2013後不能執行了
1. 能不能用Visual Studio 试用版来Deploy SP solution呢?

2. 我在迁移一个SP site , 从2010到2013, 大部份都没问题, 其中有5个custom solution, 打包成wsp. 我在2013用Add-SPSolution全部装进去, 其中有4个没问题, 就只有一个的user control出意外
在其中一页用到这个control的, 错误如下:

Getting Error Message for Exception System.Web.HttpUnhandledException (0x80004005): Exception of type 'System.Web.HttpUnhandledException' was thrown. ---> System.NullReferenceException: Object reference not set to an instance of an object.    
 at ABCDE_Intranet.XXX.DailyNewsWebPart.DailyNewsWebPartUserControl.<>c__DisplayClass1.<Execute>b__0()    
 at Microsoft.SharePoint.SPSecurity.<>c__DisplayClass5.<RunWithElevatedPrivileges>b__3()    
 at Microsoft.SharePoint.Utilities.SecurityContext.RunAsProcess(CodeToRunElevated secureCode)    
 at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(WaitCallback secureCode, Object param)    
 at Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges(CodeToRunElevated secureCode)    
 at ABCDE_Intranet.XXX.DailyNewsWebPart.DailyNewsWebPartUserControl.Execute()    
 at ABCDE_Intranet.XXX.DailyNewsWebPart.DailyNewsWebPartUserControl.Page_Load(Object sender, EventArgs e)    
 at System.Web.UI.Control.LoadRecursive()    
 at System.Web.UI.Control.AddedControl(Control control, Int32 index)    
 at ABCDE_Intranet.XXX.DailyNewsWebPart.DailyNewsWebPart.CreateChildControls()    
 at System.Web.UI.Control.EnsureChildControls()    
 at System.Web.UI.Control.PreRenderRecursiveInternal()    
 at System.Web.UI.Control.PreRenderRecursiveInternal()    
 at System.Web.UI.Control.PreRenderRecursiveInternal()    
 at System.Web.UI.Control.PreRenderRecursiveInternal()    
 at System.Web.UI.Control.PreRenderRecursiveInternal()    
 at System.Web.UI.Control.PreRenderRecursiveInternal()    
 at System.Web.UI.Control.PreRenderRecursiveInternal()
 

我有Sourcecode, 但在SP2013场没有VS, 请问有什么可以检查呢?
------解决方案--------------------
1,肯定可以。
2,有可能会出问题毕竟10的包和13包是有区别的。最好的方法是搭一个和正式环境一样的 开发测试环境。
------解决方案--------------------
引用:
Quote: 引用:

1,肯定可以。
2,有可能会出问题毕竟10的包和13包是有区别的。最好的方法是搭一个和正式环境一样的 开发测试环境。

Express可以嗎? 還是要Prof的Trial version? 之前研究過SharePoint Development Tool 不能裝在Express的

express 不行啊 http://sharepoint.stackexchange.com/questions/52338/sharepoint2013-development-with-vs2012-express
------解决方案--------------------
引用:
Quote: 引用:

1,肯定可以。
2,有可能会出问题毕竟10的包和13包是有区别的。最好的方法是搭一个和正式环境一样的 开发测试环境。

Express可以嗎? 還是要Prof的Trial version? 之前研究過SharePoint Development Tool 不能裝在Express的


应该是不行的,
不像 office一样10到13 打开没有问题。
SP会用到 很多后台的或引用的东西,当这些 特别的东西有变化时 都会报错。
------解决方案--------------------
引用:
Quote: 引用:

原来是这样解决的,错误信息和解决方法相差得比较远~~这个真不容易想出来,只能当作经验了。

让旧新版的wsp共存是不可能的,即使改了solution id,使用Add-SPSolution将新的wsp添加进去,那dll代码啊页面啊什么的也会被新的覆盖掉,本质上还是一个wsp啊。
 
順帶一提, 我之前用舊的WSP時, 發現其中幾欄site column不見了, 查證後不是不見了而是跟其他欄混在一起, 如:
<FieldTitle>    <Field Internal name>
News Category   ExpiryDate
News Location   PublishingIsFurlPage
News Priority   SeoKeywords

更新後就還原了

可是...........我在一樓不是說大部份功能都能用嗎? 我用了新的WSP後, 壞了的功能好了, 但好的功能又壞了.......

我發現新的WSP裝後它的組件還是放在 C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ , 請問有辦法指向\15\嗎?


在源码里搜索一下14,看看有没有可以的地方可以改的,比如UIVersion什么的?
或者新建一个2013的工程,把wsp导进去,重新编译打包?类似于http://blog.csdn.net/shrenk/article/details/18840257
  相关解决方案