wferr

追求完美

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
 把平时搜索的资料整理了一下,供大家参考。

一、  资源准备:
1
stsadm
    C:\Program Files\Common Files\Microsoft Shared\web server extensions\60\BIN
2
Cabinet Manager
3
WPPackager
http://www.microsoft.com/downloads/details.aspx?FamilyId=0FDA5912-C136-4B44-911A-011ADFCC66E 3&displaylang=en
4
Assembly(若对WebPart进行调试,须在本机安装Sharepoint Services
Microsoft.SharePoint.dll

local_drive:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\60\ISAPI
Microsoft.SharePoint.Portal.dll
Microsoft.SharePoint.Portal.SingleSignon.dll
5
WebPart Template
http://www.microsoft.com/downloads/details.aspx?FamilyId=CAC3E0D2-BEC1-494C-A74E-75936B88E3
安装过程需要sharepoint.dll,本机上如果没有可以到安装了Sharepoint Services的机器上拷贝一个以便完成安装(不过要想对WebPart进行调试,那么必须在本机上安装Sharepoint Services)
6
sn.exe
\Program Files\Microsoft Visual Studio .NET 2003\SDK\V1.1\Bin\

二、  开发部分
1
WebPart的安全问题
WebPart
在默认的安全等级时无法访问SharePoint Object Model,即无法通过wss sdk 来访问SPS站点中列表、文档库、文档、用户等信息。我们可以:
(1)
WebPart创建一个单独的Policy文件
(2)
WebPart.dll文件加上强名后放入GAC
(3)
提升SPS虚拟站点的信任等级:将Web根目录中的web.congif文件的<trust level = “WSS_Minimal” originUrl=””/>修改为<trust level = “WSS_Medium” originUrl=””/>
2
、开发示例


3
、可视化开发
KaneBoy
的解决方案(http://blog.joycode.com/kaneboy/archive/2004/04/22/20061.aspx)

4
、包含Winform的开发示例
(1)
嵌入到webcontrol,加入标记

<object id="print" classid="http:print.dll#Print.UserControl1" Width="728" Height="460"></object>

Print.dll为生成的控件文件名,Print.UserControl1为该控件的命名空间NAMESPACE)。
     (2)
cab安装webpart的时候如何将webpart依赖的dll部署到bin中?

    假设一个WebPart依赖一个tree.dllManifest.xml<Assemblies>节中增加一行<Assembly FileName="tree.dll"></Assembly>就可以了。这样在安装的时候就会认出依赖的程序集的
5
SSO



三、  部署部分
1
手工部署
(1)
确保正确配置WebPart1.dwp/Manifest.xml文件
(2)
WebPart添加为信任控件
在虚拟根目录的web.config中:<SafeControl Assembly="SampleWebPart" Namespace="SampleWebPart" TypeName="*" Safe="True" />
(3)
将第一步创建的“WebUserControl1.ascx”和第二步编译生成的“SampleWebPart.dll”拷贝到SPS服务器上用来承载SPS站点的虚拟主机的根目录下的“bin”目录下(如果没有此目录,就手工创建一个)
2
通过(.CAB)方式将WebPart部署到SPS服务器上
 (1)
部署到服务器的所有虚拟站点中:stsadm –o addwppack –filename ***.cab
 (2)
升级已部署的Webpartstsadm –o addwppack –filename ***.cab –force
 可以将WebPart的输出路径指向虚拟服务器的bin目录,这样每次编译成功后就自动完成了注册工作
 或直接覆盖bin目录下的.dll文件
 (3)
删除已部署的 Webpart从所有虚拟站点: Page里删除;stsadm –o deletewppack  -name ***.cab
4
通过(.MSI)方式将WebPart部署到SPS服务器上
(1)
将所需要的文件拷贝到“C:/WPPackager”。

SampleWebPart.dll  (VS.NET编译生成的Assembly文件)

WebPart1.dwp     (WebPart描述文件)

Manifest.xml      (WebPart部署文件)

boketang.jpg      (WebPart中用到的图片资源文件)
(2)
根据打包需要编辑wppackager wppackager.xml文件
(3) wppackager wppackager.xml
(4)WebPart Packager
将为你生成一个“SampleWebPart.msi”的安装文件

wppackager.exe的错误日志生成目录:"C:\Documents and Settings\wferr\Local Settings\Temp"
5
其他要点
*
指定在某个虚拟站点(而不是前面演示的SPS服务器上的所有虚拟站点)上安装和删除WebPart;
stsadm –o addwppack filename c:\***.cab –url http://www.contoso.com

* 列出SPS服务器上所有安装的WebPart;
stsadm –o enumwppacks –url http://www.contoso.com

* 将有StrongNameWebPart安装到SPS服务器的GAC中;
(1)
防止版本号增量[assembly: AssemblyVersion("1.0.0.1")]
(2)sn.exe -k c:\strongKey.snk
(3)
assembly 中设置强名 [assembly: AssemblyKeyFile("c:\\strongKey.snk")]
(4)
获取公钥 Public Key  sn.exe -T c:\inetpub\wwwroot\bin\MyWebPart.dll

写入web.config
<SafeControl

   Assembly=MyWebPart, Version=1.0.0.1, Culture=neutral,

   PublicKeyToken=PublicKeyToken"

   Namespace="MyWebParts"

   TypeName="*"

/>

 * “bin”“GAC”两种安装方式下,”stsadm”是如何放置WebPart所用到的资源文件的;

posted on 2005-12-31 16:38  秋天的虫子  阅读(1194)  评论(1编辑  收藏  举报