博客地址:http://blog.csdn.net/FoxDave

前几篇我们介绍了开发、部署和调试SharePoint应用程序的基础,本篇介绍更实用的操作,当我们开发一个SharePoint应用程序之后,如何发布它呢?

我们有两个途径发布我们的APP:发布到公共的Office商店,SharePoint可以通过在线查找商店中的应用进行安装;发布到内部组织的应用程序目录,这样SharePoint组织内的用户可以安装该APP。

发布到Office商店

发布到Office商店需要先进行注册卖方仪表板账户,上传到Office商店的应用微软会执行一系列的检查,确保上传的应用程序符合内容和行为准则,比如,它会检查清单目录标记是否完整有效,是否包含不允许的元素,应用的范围等等,如果通过检查,会打包成一个由微软签名的应用程序包。

上传到Office商店时,可以选择要提供给下载它的用户的许可证的条款:免费、试用或其他方式,按用户还是网站来提供。

SharePoint不强制实施应用程序使用的许可条款,而是提供了一个许可框架,我们可以在APP中包含代码逻辑来强制实施许可限制。比如,我们可以针对用户的付费情况来启用或禁用APP中的某些功能。

发布到应用程序目录

专用应用程序目录是SharePoint 2013Web应用程序中的一个专用网站集合,用来承载SharePoint APP的文档库。将目录放在自己的站点集合中更便于Web应用程序管理员来限制该目录的权限。

将SharePoint APP上传到企业应用程序目录就像上传文件到文档库一样。上传到应用程序目录的APP也会进行类似的检查,如果不能通过检查,APP会标记为无效或被禁用。

如何确定我们的APP要发布到哪里呢?下面的表格供我们参考:

Office商店 应用程序目录
应用程序公开可用 对此SharePoint部署具有访问权限的用户可使用应用程序
许可框架可用 许可框架不可用
应用程序包由微软进行技术和内容政策验证 在上传应用程序时由SharePoint执行应用程序包的验证
必须向微软卖方仪表板注册才能上传应用程序 不需要向微软注册

更多信息

本篇我们来发布到内部的应用程序目录上

首先在我们我们的测试Web应用程序上创建一个应用程序目录网站集:管理中心->应用程序->管理应用程序目录。

选定默认的创建新的应用程序目录网站,点击确定按钮。

如图所示填写信息,完成应用程序目录网站集的创建。

下面我们来具体看看如何发布我们的SharePoint APP。

SharePoint-hosted APP

此类SharePoint APP比较简单,没有外置的程序,我们只需要将应用程序包拿出来上传到SharePoint中即可,具体操作下面进行阐述。

我们打开之前的Hello World应用程序,右键点击项目节点,选择发布,点击打包应用程序按钮。

打包完成后会弹出APP包所在位置。

接下来到应用程序目录网站,点击左侧导航适用于SharePoint的应用程序,将打包的APP文件拖到该文档库里。

这样我们就发布好了这个应用程序。接下来我们浏览当前Web应用程序下的一个普通的网站。点击右上角的菜单,添加应用程序,左侧导航处选择来自您的组织分组。

点击应用程序图标,点击添加按钮,选择信任它,完成添加。


Provider-hosted APP

这种类型的APP由于有外置的Web应用程序,在以上步骤之前,我们需要先做一些准备工作,篇幅有限不细说了,但请仔细阅读(修改代码那里貌似可以忽略)。关于发行者ID和客户端ID,实际的环境中一般是多个APP共用一个发行者ID,我们这里只是用于测试,所以就将发行者ID设置为跟客户端ID一样的了。

然后我们先发布Web应用程序。

打开之前的SharePoint APP项目,右键点击Web应用程序项目节点,选择发布。在配置文件标签页,点击下拉框的新建配置文件,取一个名称,我们这里取作ProviderAPPWebConfig。(在发布之前先到IIS里面创建一个HTTPS类型的网站)

发布完成之后,再操作SharePoint APP项目,右键项目节点,选择发布,点击打包应用程序按钮,会弹出向导。

点击完成开始打包,打包成功之后同样会看到打完包的APP文件,跟上面一样,我们将它传到应用程序目录,然后添加到要使用的网站就可以了。

本篇完成了有几天了,迟迟没有发布是因为一直遇到问题,比如An error occurred...、拒绝访问等错误,尝试了几遍,总结出来的还是我上面说的,一定要仔细,ClientID和IssuerID一定要都对应上,认真检查,耐心些,问题会解决的。

最后附上调试时获取指定APP Pool的批处理

c:\windows\system32\inetsrv\appcmd list wp
pause




SharePoint 2013 开发——发布SharePoint应用程序的更多相关文章

  1. SharePoint 2013 开发——工作流架构

    博客地址:http://blog.csdn.net/FoxDave SharePoint 2013的工作流较之前有了不同,第一次真正地作为独立的服务的概念推出了.这意味着SharePoint工作流不再 ...

  2. SharePoint 2013 开发——概述

     博客地址:http://blog.csdn.net/FoxDave 近来阅读SharePoint 2013开发一书,带着与大家一起分享其中的内容. 部署场景: 本地部署(On-Premise D ...

  3. BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 SharePoint中基于Web开发

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发者工具 SharePoint中基于Web开发         之前提到过, ...

  4. SharePoint 2013 开发——SharePoint Designer 2013工作流

    博客地址:http://blog.csdn.net/FoxDave SharePoint Designer 2013为开发者和高级用户提供了两种创建定制工作流的模式: 基于文本的设计器--即我们一直 ...

  5. 从SharePoint 2013迁移到SharePoint Online - 评估工具

    博客地址:http://blog.csdn.net/FoxDave 今天想跟大家分享一款从SharePoint 2013迁移到SharePoint Online时的评估工具:SharePoint ...

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

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

  7. SharePoint 2013 开发教程

    做了SharePoint有三年了,大家经常会问到,你的SharePoint是怎么学的,想想自己的水平,也不过是初级开发罢了.因为,SharePoint开发需要接触的东西太多了,Windows操作系统. ...

  8. sharepoint 2013 开发环境安装

    Sharepoint 介绍 Sharepoint 可以帮助企业用户轻松完成日常工作中诸如文档审批.在线申请等业务流程,同时提供多种接口实现后台业务系统的集成,它将 Office 桌面端应用的优势结合 ...

  9. SharePoint 2013开发入门探索(二)- 列表操作

    我们如何用代码对SharePoint列表做些例如增删改查的操作呢?如果您的程序可以部署到服务器上,就可以使用 服务器对象模型,因为服务器对象模型提供的功能最多,限制最少:否则可能要选择客户对象模型等其 ...

随机推荐

  1. 在linux上搭建本地yum源

    准备yum仓库的光盘镜像IOS文件: 设置光驱加载本地磁盘的yum仓库的光盘镜像文件: 在linux的命令行输入setup命令打开设置窗口,选择"System Service": ...

  2. java程序员应该掌握的技能

    这是看了一篇大神说的java程序员应该会些什么的文章,这里只是把应该掌握的技能部分列了出来. static.final.transient.volatile关键字,内部类,泛型等 static最需要记 ...

  3. toolbar

    toolbar= (Toolbar) findViewById(R.id.toolbar_mainactivity); // 设置主标题及其颜色 toolbar.setTitle("Andr ...

  4. 5-2-2 printf参数从右往左压栈

    5-2-2 C中printf计算参数时是从右到左压栈的 #include <stdio.h> int main (int argc, char **argv) { ; ,,,,}; int ...

  5. DI 之 3.1 DI的配置使用(肆)

    3.1.1  依赖和依赖注入 传统应用程序设计中所说的依赖一般指"类之间的关系",那先让我们复习一下类之间的关系: 泛化:表示类与类之间的继承关系.接口与接口之间的继承关系: 实现 ...

  6. jq实现某个标签内,达到一定字数后,剩下的用 ... 显示

    $(".infom_con").each(function(){ var text=$(this).find("a").text(); var len=text ...

  7. 增强Web可用性,你需要避免的七大设计错误

    Web设计给了你展示自我创新才能的平台,同时也要求你特别关注其中的诸多琐碎细节.优秀的Web设计师需要从设计前辈那里获得设计灵感,寻求他们给的建议,并反复推敲,以及付出诸多努力.职业博客作者Rajni ...

  8. 为MySQL选择合适的备份方式

    数据库的备份是极其重要的事情.如果没有备份,遇到下列情况就会抓狂: UPDATE or DELETE whitout where… table was DROPPed accidentally… IN ...

  9. HTML5自学笔记[ 16 ]canvas绘图基础3

    canvas还提供提供了一些动态方法,使图像可以旋转.缩放和移动,与css3中的方法一样. 移动:translate(x,y),x和y为横竖方向的偏移量 旋转:rotate(弧度),弧度=角度*Mat ...

  10. 小程序---根据数据库反向生成java文件

    工作中写entry太繁琐,写了一个小程序反向生成.从而大大减少了工作量 import java.io.File; import java.io.FileWriter; import java.io.I ...