在之前的博客《SharePoint 2013本地开发解决方案以及远程调试》中,我们介绍了如何通过修改注册表,使SharePoint 2013 解决方案可以本地编辑,也提及了即使修改注册表,还不能做到本地创建。

  后来,仔细看了一下注册表的结构,思考了一下可能造成这样问题的原因,经过几次尝试,发现在本地创建SharePoint解决方案,也是可行的。但是,并不是所有开发模板,都可以本地创建,例如事件触发器、列表、工作流等,创建过程必须和SharePoint进行交互的模板,我们无法在本地创建。

  经过测试,发现有如下模板是可以本地创建的:

Ø  WebPart的开发

Ø  可视化WebPart的开发

Ø  模块部署母版页

Ø  应用程序页开发

Ø  网站栏的开发

Ø  Feature的创建

  本结论为个人测试结果,仅供开发参考,如有问题还需要细细排查。以上都是自己测试通过,除了以上开发模板,我在测试中发现,都必须和SharePoint交互才能创建,我们对于本地创建无能为力。

  1、若希望本地使用VS2013创建SharePoint解决方案及项目,需要删除以下注册表节点,即SharePointTools,删除前记得导出备份,方便以后需要时再次导入,经过一段时间的使用,还未曾发现VS使用有问题。

  2、如果不修改注册表,创建SharePoint解决方案,会提示如下错误:

  3、删除注册表以后,重启VS,创建SharePoint空项目成功,如下图:

  4、创建可视化WebPart,在项目上右键,添加新项,选择可视化WebPart,然后发现生成报错;

  5、找到错误代码,发现是这个初始化函数报错,然后看黄色的警告,发现是有些本来自动生成的文件,没有生成成功(因为必须和SharePoint交互,才能自动生成);

  6、对比正确的可视化WebPart,发现VisualWebPart1.ascx.g.cs这个文件,没有生成成功,手动添加进来,如下图;

  7、这个文件,不仅仅是手动添加进来就好使的,在使用过程中,还发现及时手动添加进来,自动生成的代码,也不会生成,这就为我们开发带来了不遍。但是,我通过手动添加需要生成的代码,也成功完成了可视化WebPart的Demo。我在部件上添加了一个Div,ID为“mydiv”,runat=server,

  8、手动添加该div的声明代码;

 1         [GeneratedCodeAttribute("Microsoft.VisualStudio.SharePoint.ProjectExtensions.CodeGenerators.SharePointWebP" +
 2     "artCodeGenerator", "12.0.0.0")]
 3         protected global::System.Web.UI.HtmlControls.HtmlGenericControl mydiv;
 4
 5         [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Never)]
 6         [GeneratedCodeAttribute("Microsoft.VisualStudio.SharePoint.ProjectExtensions.CodeGenerators.SharePointWebP" +
 7             "artCodeGenerator", "12.0.0.0")]
 8         private global::System.Web.UI.HtmlControls.HtmlGenericControl @__BuildControlmydiv()
 9         {
10             global::System.Web.UI.HtmlControls.HtmlGenericControl @__ctrl;
11             @__ctrl = new global::System.Web.UI.HtmlControls.HtmlGenericControl("div");
12             this.mydiv = @__ctrl;
13             @__ctrl.ID = "mydiv";
14             return @__ctrl;
15         }

View Code

  9、在private void @__BuildControlTree中添加创建控件代码:

1 global::System.Web.UI.HtmlControls.HtmlGenericControl @__ctrl1;
2 @__ctrl1 = this.@__BuildControlmydiv();
3 System.Web.UI.IParserAccessor @__parser = ((System.Web.UI.IParserAccessor)(@__ctrl));
4 @__parser.AddParsedSubObject(@__ctrl1);

  10、为可视化WebPart添加后台代码,如下图:

  代码非常简单,只是读取站点的Title,并显示出来:

  11、创建完可视化WebPart以后,创建WebPart,在项目上右键,新建项,选择WebPart;WebPart比较简单,只是添加后台代码就可以了,代码依然是读取站点Title然后Render出来;

  12、添加完毕WebPart,我们添加网站栏,新建一个网站栏,然后,编辑网站栏的Xml即可:

  13、然后,再添加应用程序页,如下图:

  因为测试,功能比较简单,只是改了上面的文字,就是测试应用程序页是否可以使用;

  14、创建模块,添加母版页,如下图:

  这是模块的目录结构:

  模块的Xml描述文件,如下图:

  15、到这里,能创建的项目,都已经创建完毕,并添加了简单的功能代码,那些不能创建的,会报如下错误,看了看应该是调用程序集与SharePoint交互,而本地并没有SharePoint造成的;

  16、下面是我的本地解决方案的完整结构,包括两个Feature(一个web,一个Site范围),还包括应用程序页、模块、网站栏、可视化WebPart、WebPart;

  17、将代码拷贝到服务器,在项目上右键,按功能键F4调出属性菜单,修改站点Url,在服务器上打包部署;

  18、部署解决方案完毕,页面上添加WebPart,正常显示:

  19、页面上添加可视化WebPart,显示正常:

  20、打开网站栏,我们创建的网站栏已经部署成功,如下图:

  编辑网站栏,如下图,可以编辑网站栏的栏名,并选择网站栏所属的分组,这里的分组是网站栏xml中描述的分组:

  21、打开应用程序页面,如下图,显示正常:

  22、使用SPD打开网站,找到母版页文件夹,发现母版页也已经部署成功,就此,所有测试的模板,均证实本地创建、开发,服务器部署是可行的;

  美中不足,因为本地没有SharePoint环境,所以我们打包解决方案依然要去有环境并装有VS的地方打包,然后部署,但是本地开发,也已经算是很大的进步了,我们不用在纠结于没有服务器了。

  本地创建SharePoint解决方案,而后服务器打包部署,远程调试,更加方便了SharePoint的开发和使用。最后,如有对SharePoint模板开发不熟悉的,可以参见我的图文入门开发系列博客,对远程调试不了解的,也可以参见我的上一篇博客。

  再次,感谢您的阅读,希望我的博客可以为您带来帮助,欢迎热衷于SharePoint研究和开发的程序员,加入我的qq群一起讨论、探讨SharePoint开发。

  SharePoint 2013 图文开发系列之入门教程

  SharePoint 2013 本地开发解决方案以及远程调试

SharePoint 2013 本地创建解决方案相关推荐

  1. SharePoint 2013 本地开发解决方案以及程调试

    SharePoint 2013 本地开发解决方案以及程调试 在SharePoint开发中,我们需要在部署有SharePoint环境的服务器中开发,这是一件让人很苦恼的事情,毕竟不能一个项目多人开发配备 ...

  2. 基于SharePoint 2013的论坛解决方案[开源]

    前言 这是自己在空闲时间里,为了提高对SharePoint的认识和熟悉技术,做的一个Demo.可能不尽完善,但是基本功能都已经有了,欢迎大家评论和提意见.自己也会在把源代码放到Github上进行开源, ...

  3. SharePoint 2013 场解决方案包含第三方程序集

    前言 当我们使用SharePoint 场解决方案的时候,经常会包含第三方的程序集,而第三方的程序集经常会有强签名的问题,如果有强签名可以部署到GAC,没有的话也可以部署到应用程序下. 那么,很多初学者 ...

  4. Visio 2016 和 SharePoint Designer 2013 来创建工作流并将其发布到 SharePoint 2016 网站而无需任何代码

    本文章内容非本人所写,转载地址 https://msdn.microsoft.com/zh-cn/library/office/jj163272.aspx 抓图是使用Visio 2016 验证. 使用 ...

  5. SharePoint 2013开发入门探索(一)- 自定义列表

    在SharePoint 2013中创建自定义列表的方式有很多,在网站内容页面添加应用程序就可以创建(站点内容-〉 您的应用程序),也可以通过SharePoint Designer 2013创建,而本文 ...

  6. 优秀的SharePoint 2013开发工具有哪些(一)

    下面是SharePoint解决方案开发人员强烈推荐的开发工具,你知道它们吗? CAML Designer 2013 CAML Designer是帮助生成CAML查询以查询SharePoint列表的一种 ...

  7. sharepoint搭建文档服务器,SharePoint 2013 安装和配置概述

    SharePoint 2013 安装和配置概述 03/21/2018 本文内容 **上一次修改主题:**2017-08-23 **摘要:**了解如何在场中安装和配置 SharePoint Server ...

  8. BEGINNING SHAREPOINT#174; 2013 DEVELOPMENT 第1章节--SharePoint 2013 介绍 SharePoint 2013 平台...

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第1章节--SharePoint 2013 介绍 SharePoint 2013 平台 SharePoint保持了一个高级 ...

  9. SharePoint 2013 图文开发系列之创建内容类型

    SharePoint内容类型,是很有特色的,就好比发布新闻,同在一张列表里,可以由内容类型区分图片新闻.文字新闻等,顾名思义,就是在一张列表里发布不同类型的项目. 1.添加新项目,选择SharePoi ...

最新文章

  1. 把文件每行的tab键分隔符改成逗号分隔符
  2. 人脸识别种族偏见:黑黄错误率比白人高100倍 | 美官方机构横评189种算法
  3. 在线代码编辑器---codemirror插件
  4. 集群理论详解(续一)
  5. 02-css的选择器
  6. Python稳基修炼的经典案例7(计算机二级、初学者必须掌握的例题)
  7. SQLite语句总结
  8. LintCode 412: Candy
  9. 精品软件 推荐 Acme CAD Converter 全能 CAD 文件转换器和免费 DWG 查看器
  10. ARINC429协议芯片DEI1016工作原理
  11. matlab 计算 Lorenz 系统最大李雅普诺夫指数
  12. 百度地图集成骑行导航和驾车导航
  13. 巧用python求解逻辑题,特简单!
  14. 提升技能,升级思维,你学知识我送T恤,订阅专栏免费领51CTO定制T恤
  15. Django-- (三) Django数据库操作
  16. ubuntu18.04安装teamviewer后,一直登录不上原因。
  17. 百度amp;高德地图小区景点边界轮廓实现
  18. 第一序列任小粟的能力_第一序列全本免费阅读-第一序列小说精校版
  19. Linux操作系统之—所有端口详解大全手册
  20. 数字图像处理 什么是霍夫变换?

热门文章

  1. Flex里[Exclude]标签的作用:对外忽略/隐藏内部某对象
  2. 数学之---KL散度
  3. 自动驾驶算法-滤波器系列(三)——不同运动模型(CV、CA、CTRV、CTRA)的建模和推导
  4. [冲啊!!!!!]小白SLAM相关基础知识
  5. 编辑器之神Vim总结
  6. 计算机二级科目有ps吗,计算机二级有ps吗
  7. php 农历日历,php下实现农历日历的代码_php实例
  8. notepad++运行python/C/C++/perl32
  9. php有哪些debug方式,Console有哪些Debug方法
  10. oracle10gr2安装教程,Solaris10安装Oracle10gR2时的注意事项