将 SharePoint 2010 解决方案转换为 2013 和 Visual Studio 2012

Convert SharePoint 2010 Solution to 2013 and Visual Studio 2012

我正在尝试将在 Visual Studio 2010 中开发的 SharePoint 2010 解决方案(自定义 Web 部件、内容类型、列表、事件接收器等)转换为 SharePoint 2013 和 Visual Studio 2012。当我在 VS 2012 中打开项目时,它转换了几个项目文件,但由于参考问题而无法编译。

我复制了导致问题从我的 2010 服务器到 2013 服务器的 DLL(主要是 Microsoft.SharePoint...,虽然我也需要复制 Microsoft.Office.SecureStoreService.dll)并修复了引用。但是,Microsoft.Office.SecureStoreService.dll 仍然给我编译器错误,声称 "Error 203 The type or namespace name \\'Office\\' does not exist in the namespace \\'Microsoft\\' (您是否缺少程序集引用?) " 当 Visual Studio 对命名空间没有问题并且在其中找到 SecureStoreProvider 类时就好了。

我也尝试将目标框架从 3.5 更改为 4,但在目标框架下拉列表中只看到"安装其他框架..."。

我确信其他人已经解决了这个问题,但未能成功构建正确的谷歌搜索查询。总的来说,我对 SharePoint 还比较陌生,如果有任何帮助,我将不胜感激。

谢谢,

迈克


我能够使用以下方法将我的解决方案从 2010 项目升级到 2013。请注意,这将更新您的解决方案以使用新的 2013 API。可以只更新项目文件但仍以 2010 模式运行。

首先编辑您的 .csproj 文件(对于 c#)。

把目标框架修改成这样:
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

为office版本添加这个节点,我把我的直接放在TargetFrameworkVersion标签下面
<TargetOfficeVersion>15.0</TargetOfficeVersion>

更新参考

重新加载项目并更新您引用的程序集。如果您尚未指定特定版本,则它们应该已经引用了 v15 (SharePoint 2013) 程序集。

14.0.0.015.0.0.0 进行查找替换。这会将页面、布局和母版页上的所有引用更新到 v15 程序集。

更改通话

将所有对 SPUtility.GetGenericSetupPath() 的调用更改为 SPUtility.GetVersionedGenericSetupPath()

检查每个文件以检查任何配置单元引用。您需要向这些添加 /15/。例如:_layouts/ 到 _layouts/15/

在 Visual Studio 中打开包"文件夹",然后更新该包的属性以使用版本 15。

清理

最后做一个编译清理所有遗漏的项目。部署您的解决方案并确保彻底测试。