sharepointWebPart开发、部署、发布过程全记录

今天遇到了一个肯爹的问题,将一个工程下面的webpart部署到sharepoint站点中,如果说是一个常规的webpart solution倒好解决,直接将solution的地址设置成sharepoint目标部署的url,但是今天遇到的并非是webpart solution,而是一个普通的c#工程,里面的cs文件继承System.Web.UI.WebControls.WebParts.WebPart ,现在能得到的只有编译好的dll,需要部署到sharepoint站点中,对于一个对sharepoint很陌生,甚至对iis服务器不熟悉的我,在项目同事的帮助下解决了此问题,幸甚啊。现记录下来,希望对遇到同样问题的同行有所帮助。

这篇博客给了我一定思路,感谢这篇博客主人。

如果想了解sharepoint部署常识请访问msdn

现在介绍的方法是用sharepoint 2010 部署dll。

 

第一步:强命名工程,即给工程添加一个snk

Msdn也有部分介绍,地址是:http://msdn.microsoft.com/en-us/library/k5b5tt23.aspx

我介绍一种比较方便的方法,在Vs工程中鼠标右击项目名,选择属性,然后选择”签名(signing)”,此时会看到choose a strong name key file, 然后new 一个,如下图,如此就能对工程强命名了,我文章前面提到的参考博客也对此步骤有过详细介绍。

第二步:查询要想部署工程的Assembly名称信息

查询的方法有很多中,一种是用Reflector工具,这在本文前面提到的友情博客中有介绍,

另外一种是在C:\Windows\assembly中查,前提是必须先将dll注册进assembly,如果你电脑里UAC设置过,可以直接将dll拖放进assembly中。

这里顺便介绍一下设置UAC方法:打开控制面板->User Accountsàchange user Account control settings,将notify调至never.

我用的是第三种方式查询Assembly名称信息,通过vs工具查看:

如果之前你已经在vs中添加好了此工具可以略过下面。

vs Toolsàexternal toolsàadd

填写内容对应为   command:powershell.exe

Arguments:-command "[System.Reflection.AssemblyName]::GetAssemblyName(\"$(TargetPath)\").FullName"

(注意arguments参数前面有”-”)

最后钩上”use output window”

第三步:打开web.config文件,在在<SafeControls></SafeControls>节点添加Assembly名称信息,例如(本例复制他人博客,参考本文友情博客链接):<SafeControl Assembly="AssignerReject, Version=1.0.0.0,  Culture=neutral, PublicKeyToken=1a293534db071253"  Namespace="AssignerReject.Properties" TypeName="*" Safe="True" />

 

好了前奏基本搞定,下面介绍添加webpart到sharepoint2010网站

  1. 添加webpart

步骤:site Action->site SettingsàGalleriesàweb parts

进去后找到你想要添加的webpart,如果不能找到,如下图继续

(进入下一界面如果还是找不到的话可能前面步骤出问题了,没有将dll加入到gac里面。)选中想要添加的webpart点击Populate Gallery按钮,添加成功。

 

第二步 新建一个site,将上面的Webpart添加到site中,但是此时在custom中并不能找到你想要添加的Webpart,此时回到第一步,进入”web parts”界面,找到添加的webpart,如下图

(红圈则是想要添加的webpart)点击编辑

设定group,如此在site中插入webpart时在custom中就能找到此webpart,部属成功。

后继:本文前述介绍的前提是将dll引入到Assembly中,但是此方法是建议是在生产环

境下这样做,在开发环境中我们一般使用部署到bin目录中,这样便于调试。

右键解决方案选择属性,这时在应用程序标签中,将显示出WebPart组件程序集的名称和默认的命名空间。点击生成标签,选择输出路径。点击浏览按钮导航到SharePoint的bin目录

posted @ 2012-04-18 17:47  Bradwarden  阅读(1360)  评论(0编辑  收藏  举报