怎样用C#代码管理SharePoint解决方式

        本文我们将了解怎样用代码管理SharePoint解决方式。我们使用server端对象模型抽取解决方式。
        SharePoint中解决方式有两类:沙盒解决方式和场解决方式。 沙盒解决方式和场解决方式使用不同方式部署,而且通过不同对象模型抽取。
        注意:这里用SPUserSolution代表沙盒解决方式;SPFarmSolution代表场解决方式。

怎样获得沙盒解决方式

        沙盒解决方式在站点集层次部署。以下是在站点集中抽取全部用户解决方式:
using (SPSite site = new SPSite("http://localhost"))
{
foreach (SPUserSolution solution in site.Solutions)
{
Console.WriteLine(solution.Name);
Console.WriteLine(solution.Status);
}
}

怎样获得场解决方式

        抽取全部场解决方式的代码例如以下:
foreach (SPSolution solution in SPFarm.Local.Solutions)
{
Console.WriteLine(solution.Name);
Console.WriteLine(solution.SolutionId);
Console.WriteLine(solution.Status);
}

接下来看看怎样通过server端对象模型安装解决方式吧。

安装沙盒解决方式

        安装解决方式有两步:加入�到库;激活。
        以下是加入�解决方式到库的代码:
using (SPSite site = new SPSite("http://localhost"))
{
SPDocumentLibrary gallery
=(SPDocumentLibrary)site.GetCatalog(SPListTemplateType.SolutionCatalog);
SPFile file = gallery.RootFolder.Files.Add("SandboxedSolution.wsp",
File.ReadAllBytes("SandboxedSolution.wsp")); SPUserSolution solution = site.Solutions.Add(file.Item.ID);
}

移除沙盒解决方式

        移除解决方式并禁用功能使用下面代码:
using (SPSite site = new SPSite("http://localhost"))
{
SPUserSolution solution = site.Solutions.Cast<SPUserSolution>().
Where(s => s.Name == "Your Solution").First();
site.Solutions.Remove(solution);
}

安装场解决方式

         安装场解决方式使用下面代码:
private static void InstallFarmSolution()
{
SPSolution solution = SPFarm.Local.Solutions.Add("File Path here");
solution.Deploy(DateTime.Now, true, GetAllWebApplications(), true);
}

我们须要指定解决方式路径。上面的代码让解决方式安装到全部Web应用程序中。GetAllWebApplication()方法主体例如以下:

public static Collection<SPWebApplication> GetAllWebApplications()
{
Collection<SPWebApplication> result = new Collection<SPWebApplication>();
SPServiceCollection services = SPFarm.Local.Services;
foreach (SPService s in services)
{
if (s is SPWebService)
{
SPWebService webService = (SPWebService)s;
foreach (SPWebApplication webApp in webService.WebApplications)
{
result.Add(webApp);
}
}
}
return result;
}

移除场解决方式

        移除场解决方式成为收回解决方式。这是合适的方法:
private void RetractFarmSolution(SPSolution solution)
{
solution.Retract(DateTime.Now);
}

创建Timer job收回解决方式。你能够指定開始收回的时间。

        仅仅从指定Web应用程序移除解决方式,參照这种方法:
private void RetractFarmSolution(SPSolution solution, Collection<SPWebApplication> webApplications)
{
solution.Retract(DateTime.Now, webApplications);
}

总结

        本文中,我们学习了怎样使用server端对象模型抽取沙盒解决方式和场解决方式。

參考:

关于沙盒解决方式与场解决方式差别,參照http://msdn.microsoft.com/en-us/library/ee361616.aspx
使用代码激活SharePoint 2010 沙盒解决方式,參照http://msdn.microsoft.com/en-us/library/hh528516(v=office.14).aspx

怎样用C#代码管理SharePoint解决方式的更多相关文章

  1. PowerShell 导出SharePoint管理中心解决方式

    PowerShell 导出SharePoint管理中心解决方式         SharePoint QQ群有人问能不能下载(导出)管理中心里的解决方式.由于在管理中心中点击解决方式会进入还有一个页面 ...

  2. 部署SharePoint解决方式包时遇到的问题

    部署SharePoint解决方式包时遇到的问题 近期我在使用STSADM.EXE命令部署解决方式包的时候.遇到一个问题.很的难搞.         创建WSP文件非常easy.加入到解决方式库也非常e ...

  3. Android_动态权限管理的解决方式

    本博文为子墨原创.转载请注明出处! http://blog.csdn.net/zimo2013/article/details/50478201 1.前言 (1).因为MIUI等部分国产定制系统也有权 ...

  4. 通过PowerShell卸载全部的SharePoint 2010 解决方式

    通过PowerShell卸载全部的SharePoint 2010 解决方式         为了演示.我常常须要拆毁再重建SharePoint 2010 环境.         我常常须要用到的操作就 ...

  5. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第13章节--使用业务连接服务创建业务线解决方式 SP Apps中的BCS

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第13章节--使用业务连接服务创建业务线解决方式  SP Apps中的BCS         之前的联系中,你安装了一个业 ...

  6. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps Office新的App模型

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps  Office新的App模型         Office 2 ...

  7. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps Office的JavaScript对象模型

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps  Office的JavaScript对象模型         ...

  8. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps 集成SP和Office App

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第11章节--为Office和SP解决方式开发集成Apps  集成SP和Office App         你能够用两种 ...

  9. google跟踪代码管理器gtm无法给相同class元素绑定click事件埋点解决

    Google 跟踪代码管理器是一个跟踪代码管理系统 (TMS),可以帮助您快速轻松地更新网站或移动应用上的跟踪代码及相关代码段(统称为“代码”).将一小段跟踪代码管理器代码添加到项目后,您可以通过网页 ...

随机推荐

  1. PostgreSQL服务端监听设置及client连接方法

    背景介绍: PostgreSQL服务端执行在RedHat Linux上,IP为:192.168.230.128 client安装在Windows XP上, IP为:192.168.230.1 配置方法 ...

  2. 怎样通过git协作开发

    近期iOS群里的一些小伙伴刚刚毕业,刚參加工作的小伙伴们,对于怎样进行git下的一个写作开发抱有较大的疑惑.今天小汤我就给大家分享个git下协作开发的小技巧. 怎样通过git协作开发? 当两个开发人员 ...

  3. xcode Workspaces

    A workspace is an Xcode document that groups projects and other documents so you can work on them to ...

  4. SE 2014年5月27日

    R1模拟总部,R2 与R3模拟分部 如图配置 要求使用 GRE over IPSec VPN 主模式,启用动态路由协议rip使得总部与两分部内网可相互通讯,但要求分部用户数据流不允许互通! 步骤: 1 ...

  5. win7下硬盘安装win7+linuxUbuntu双系统方法

    Linux安装大致介绍: win7下硬盘安装win7+linuxUbuntu双系统方法 原则: 所有的看完在装,请仔细看 一 条件: 1. 系统选择 linux unbuntu12.04.2-desk ...

  6. vi 按了ctrl+s之后

    再windows不管是写程序.还是用Word写文件.已经习惯了按ctrl+s 保存代码. 在用vi的时候.常常无意中按了ctrl+s,结果就是如同终端死掉了一样. 这是由于ctrl+s 终止屏幕输出( ...

  7. 怎样从host之外连接到docker container

    启动docker的时候的指令使用 sudo docker -H tcp://0.0.0.0:4243 -H unix:///var/run/docker.sock -d & 这样就能使dock ...

  8. Windows phone 8 学习笔记(4) 应用的启动

    原文:Windows phone 8 学习笔记(4) 应用的启动 Windows phone 8 的应用除了可以直接从开始菜单以及应用列表中打开外,还可以通过其他的方式打开.照片中心.音乐+视频中心提 ...

  9. Java Executor 框架

    Java Executor 框架 Executor框架是指java5中引入的一系列并发库中与executor相关的功能类,包括Executor.Executors. ExecutorService.C ...

  10. Windows Phone开发(44):推送通知第二集——磁贴通知

    原文:Windows Phone开发(44):推送通知第二集--磁贴通知 前面我们说了第一个类型--Toast通知,这玩意儿不知大家是不是觉得很新鲜,以前玩.NET编程应该没接触过吧? 其实这东西绝对 ...