转抄:打包和部署 Microsoft Windows SharePoint Services 的 Web 部件
摘要:了解如何使用 Microsoft Windows SharePoint Services 提供的管理工具来打包和部署 Web 部件。(12 页打印页)
注 本文中的信息还适用于在 Windows SharePoint Services 平台上构建的 Microsoft Office SharePoint Portal Server 2003。
本页内容
| 简介 | |
| 构建 Web 部件包 | |
| 部署 Web 部件包 | |
| 添加 Web 部件包 | |
| 删除 Web 部件包 | |
| 枚举 Web 部件包 | |
| 开关 | |
| 安装 Web 部件包 | |
| 小结 |
简介
Web 部件不仅仅是它们要编译成的程序集。Web 部件可以拥有类资源,如图像、Microsoft JScript 文件和帮助文件。这些文件还可以在 Web 部件位置以外的位置进行本地化和部署。另外,必须将 Web 部件添加到特定虚拟服务器的 SafeControl 列表中,用户才能利用其功能。
前提条件
| • |
熟悉 Microsoft Windows SharePoint? Services 和/或 Microsoft Office SharePoint Portal Server 2003 |
| • |
了解如何创建 Web 部件 |
| • |
熟悉 Web 部件的基础结构 |
构建 Web 部件包
Web 部件包是包含以下各项的压缩 (.cab) 文件:
|
1. |
Manifest.xml(必需) |
|
2. |
Web 部件程序集(可选) |
|
3. |
类资源文件(可选) |
|
4. |
.dwp 文件(可选) |
为 .cab 文件创建清单文件
清单文件 (Manifest file) 是一个用来描述 .cab 文件结构和内容的配置文件,是 .cab 文件所需的唯一组件。Stsadm.exe 工具可使用此文件来部署 .cab 文件的其余内容。
下表描述 Manifest.xml 文件中的节点和子节点。
| 节点 | 父节点 | 说明 |
|
WebPartManifest |
WebPartManifest |
定义 XML 的架构。 |
|
Assemblies |
WebPartManifest |
包含所部署的每个程序集的定义。 |
|
Assembly |
Assemblies |
使用 FileName 属性来定义程序集文件的名称,其中包含类资源的定义以及 SafeControls 列表的 XML。 |
|
ClassResources |
Assembly |
包含所部署的每个类资源的定义。 |
|
ClassResource |
ClassResources |
使用 FileName 属性来定义类资源文件的名称。 |
|
SafeControls |
Assembly |
包含 SafeControls 列表中每行 XML 的定义。 |
|
SafeControl |
SafeControls |
定义 SafeControls 列表中的每一行。 |
|
DwpFiles |
WebPartManifest |
包含所部署的每个 .dwp 文件的定义。 |
|
DwpFile |
DwpFiles |
使用 FileName 属性来定义 .dwp 文件的文件名。 |
下面的示例显示一个软件包的清单文件,该文件部署了两个程序集及其资源:
<?xml version="1.0" encoding="utf-8" ?>
<WebPartManifest xmlns="http://schemas.microsoft.com/WebPart/v2/Manifest">
<Assemblies>
<Assembly FileName="WebPartLibrary1.dll">
<ClassResources>
<ClassResource FileName="image1.gif"/>
<ClassResource FileName="image2.gif"/>
</ClassResources>
<SafeControls>
<SafeControl Namespace="WebPartLibrary1" TypeName="*"/>
</SafeControls>
</Assembly>
<Assembly FileName="WebPartLibrary2.dll">
<ClassResources>
<ClassResource FileName="MyCustomHelp.htm"/>
<ClassResource FileName="LargeIcon.gif"/>
</ClassResources>
<SafeControls>
<SafeControl Namespace="WebPartLibrary2" TypeName="*"/>
</SafeControls>
</Assembly>
</Assemblies>
<DwpFiles>
<DwpFile FileName="WebPart1.dwp"/>
<DwpFile FileName="WebPart2.dwp"/>
</DwpFiles>
</WebPartManifest>
创建 .cab 文件
开发人员可以使用下列任一方法来创建 .cab 文件:
| • |
使用 Microsoft Visual Studio .NET Professional 来创建 CAB 项目。 |
| • |
使用 Microsoft Windows 2000 及更高版本中随附的命令行工具 MakeCAB.exe。 |
使用 Visual Studio
要使用 Visual Studio.NET Professional 来创建 CAB 项目,请执行以下步骤:
|
1. |
启动 Visual Studio .NET。 | ||||||
|
2. |
新建一个解决方案。
| ||||||
|
3. |
打开该解决方案中的 Web 部件项目。
| ||||||
|
4. |
新建一个 CAB 项目
| ||||||
|
5. |
在“项目类型”下,单击“安装和部署项目”,然后在“模板”下单击“Cab 项目”。
| ||||||
|
6. |
将 Web 部件项目的输出内容添加到 CAB 项目中。
确保选择了“主要输出”和“内容文件”。这些类别会将 Manifest.xml 文件、.dwp 文件和 Web 部件程序集添加到该 .cab 文件中。验证 Manifest.xml 文件和 .dwp 文件在其各自的属性页中被标记为生成操作的内容。 | ||||||
|
7. |
构建用来创建 .cab 文件的解决方案。 |
使用 MakeCAB.exe
MakeCAB.exe 是 Windows 2000 或更高版本中随附的工具。要使用 MakeCAB.exe 来创建 .cab 文件,请执行以下步骤:
| • |
为 makecab.exe 创建一个定向文件,然后以 .ddf 扩展名保存该文件。下面的示例定向文件(名为 sample.ddf)为一个简单的 Web 部件库项目创建了一个 .cab 文件: |
| • |
;*** Sample Source Code MakeCAB Directive file example |
| • |
; |
| • |
.OPTION EXPLICIT ; Generate errors |
| • |
.Set CabinetNameTemplate=SampleCab.cab |
| • |
.set DiskDirectoryTemplate=CDROM ; All cabinets go in a single |
| • |
directory |
| • |
.Set CompressionType=MSZIP;** All files are compressed in cabinet files |
| • |
.Set UniqueFiles="OFF" |
| • |
.Set Cabinet=on |
| • |
.Set DiskDirectory1=SAMPLECAB.CAB |
| • |
manifest.xml |
| • |
WebPart1.dwp |
| • |
WebPartLibrary1.dll |
| • |
;*** <the end> |
| • |
将您希望包含在 .cab 文件中的所有文件复制到创建 .ddf 文件的目录中。在本例中,这些文件是 Manifest.xml 文件、WebPart1.dwp 文件和 WebPartLibrary1.dll 文件。 |
| • |
打开一个命令提示符,转到包含 .ddf 文件以及您希望包含在 .cab 文件中的文件的目录,然后运行以下命令: |
| • |
Makecab.exe /F sample.ddf |
MakeCAB.exe 创建一个名为 SAMPLECAB.CAB 的目录,然后在该目录中创建一个名为 SampleCab.cab 的 .cab 文件,其中包含 Sample.ddf 定向文件中列出的三个文件。
有关 MakeCAB.exe 的详细信息,请下载 Microsoft Cabinet Software Development Kit。
用本地化资源创建 CAB 文件
Visual Studio 不支持创建包含内部目录的 .cab 文件。但是,本地化的 Web 部件可能需要一个包含内部目录的 .cab 文件。因此,您必须使用一个 MakeCAB.exe 之类的工具或其他第三方 CAB 实用工具来部署本地化的 Web 部件。
下面的示例描述如何为一个名为 SampleWebPartLibrary 的英语 Web 部件项目(该项目同时还提供德语本地化资源)创建 .cab 文件。本例中的 .cab 文件名为 Sample.cab,它必须包含下列文件:
| • |
SampleWebPartLibrary.dll |
| • |
Help.htm |
| • |
Image1.gif |
| • |
WebPart1.dwp |
| • |
de-DE/Help.htm |
| • |
de-DE/Image1.gif |
| • |
de-DE/WebPart1.dwp |
要为该示例 Web 部件项目创建 .cab 文件,请执行以下步骤:
|
1. |
创建适当的 Manifest.xml 文件。下面的示例显示 Sample.cab 文件的 Manifest.xml 文件: <?xml version="1.0" encoding="utf-8" ?> <WebPartManifest
xmlns="http://schemas.microsoft.com/WebPart/v2/Manifest">
<Assemblies>
<Assembly FileName="SampleWebPartLibrary.dll">
<ClassResources>
<ClassResource FileName="image1.gif"/>
<ClassResource FileName="help.htm"/>
<ClassResource FileName="de-DE\image1.gif"/>
<ClassResource FileName="de-DE\help.htm"/>
</ClassResources>
<SafeControls>
<SafeControl Namespace="SampleWebPartLibrary"
TypeName="*"/>
</SafeControls>
</Assembly>
</Assemblies>
<DwpFiles>
<DwpFile FileName="WebPart1.dwp"/>
<DwpFile FileName="de-DE\WebPart1.dwp"/>
</DwpFiles>
</WebPartManifest>
|
|
2. |
创建适当的 Makecab.exe 定向文件。下面的示例显示 Sample.cab 文件的定向文件: ;*** Sample Source Code MakeCAB Directive file example ; .OPTION EXPLICIT ; Generate errors .Set CabinetNameTemplate=Sample.cab .set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory .Set CompressionType=MSZIP ;** All files are compressed in cabinet files .Set UniqueFiles="OFF" .Set Cabinet=on .Set DiskDirectory1=SAMPLE.CAB manifest.xml WebPart1.dwp SampleWebPartLibrary.dll Image1.gif help.htm Set DestinationDir=de-DE de-DE\WebPart1.dwp de-DE\image1.gif de-DE\help.htm ;*** <the end> |
|
3. |
将您希望包含在 .cab 文件中的所有文件复制到创建 .ddf 文件的目录中,并将所有的本地化资源复制到相应的子目录中。下面的示例显示 Sample.cab 文件的目录结构: \Directory with directive file
Sample.ddf
Manifest.xml
SampleWebPartLibrary.dll
WebPart1.dwp
Image1.gif
Help.htm
\de-DE
WebPart1.dwp
Image1.gif
Help.htm
|
|
4. |
打开一个命令提示符,转到包含 .ddf 文件以及您希望包含在 .cab 文件中的文件的目录,然后运行以下命令,以便在 Sample.cab 文件中创建一个子目录,并为部署准备 Sample.cab 文件: Makecab.exe /F sample.ddf |
部署 Web 部件包
管理员可以使用 Stsadm.exe 工具来部署由开发人员创建的 .cab 文件。Stsadm.exe 是一个可用来管理 Windows SharePoint Services 计算机的命令行工具。以下三个 Stsadm.exe 选项可用于 Web 部件包部署:
| • |
AddWPPack |
| • |
DeleteWPPack |
| • |
EnumWPPacks |
有关特定 Stsadm.exe 命令行选项的详细信息,请在命令提示符下键入下面一行命令:
stsadm –help option
添加 Web 部件包
要使用 Stsadm.exe 命令在运行 Windows SharePoint Services 的服务器计算机上部署 Web 部件包,请打开命令提示符,然后键入以下命令:
stsadm.exe -o addwppack -filename Web_Part_Pack_name [-url URL] [-globalinstall] [-force]
如果您希望在一个虚拟服务器上安装一个 Web 部件包,而同一台计算机上的另一个虚拟服务器已经安装了该 Web 部件包,请使用以下命令:
stsadm.exe -o addwppack -name Web_Part_Pack_name [-url URL] [-globalinstall] [-force]
开关
下表描述支持添加 Web 部件包的 Stsadm.exe 命令行开关。
| 开关 | 说明 |
|
-url |
指定您要在其上安装 Web 部件包的虚拟服务器的 URL。 注 如果您不使用此开关,则软件包将安装在计算机上所有已启用 Windows SharePoint Services 的虚拟服务器上。 |
|
-name |
将 Web 部件包从配置数据库安装到虚拟服务器上。在计算机上首次安装软件包时,Stsadm.exe 会在配置数据库中创建 .cab 文件的副本。在服务器场部署中,当管理员在前端 Web 服务器上安装 Web 部件包之后,您可以在没有 .cab 文件本地副本的情况下,在所有的前端 Web 服务器上安装 Web 部件包。 |
|
-globalinstall |
将 Web 部件包安装到全局程序集缓存 (GAC) 中。只将 Web 部件包中具有强名称的 Web 部件程序集安装到 GAC 中;所有其他程序集都安装在虚拟服务器的 Bin 目录中。 |
|
-force |
强制 Stsadm.exe 改写已安装的 Web 部件包。如果命令行上指定的 Web 部件包已存在于服务器上,您可以使用此开关来改写该软件包。 |
|
-filename |
强制 Stsadm.exe 使用由命令行上的路径指定的 .cab 文件。 |
删除 Web 部件包
要从运行 Windows SharePoint Services 的计算机上的指定虚拟服务器中删除 Web 部件包,请打开命令提示符,然后键入以下命令:
stsadm.exe -o deletewppack
-name Web_Part_Pack_name
[-url URL]
开关
下表描述支持删除 Web 部件包的 Stsadm.exe 命令行开关。
| 开关 | 说明 |
|
-name |
用于指定要删除的 Web 部件包。 |
|
-url |
指定包含要删除的 Web 部件包的虚拟服务器的 URL。 注 如果您不使用此开关,则会将软件包从计算机上所有已启用 Windows SharePoint Services 的虚拟服务器中删除。 |
枚举 Web 部件包
要列出在运行 Windows SharePoint Services 的计算机上安装的所有 Web 部件包,请打开命令提示符,然后键入以下命令:
stsadm.exe -o enumwppacks
[-name Web_Part_Pack_name]
[-url URL]
[-farm]
开关
下表描述支持枚举 Web 部件包的 Stsadm.exe 命令行开关。
| 开关 | 说明 |
|
-name |
确定是否已安装指定的 Web 部件包。 |
|
-url |
指定包含要枚举的 Web 部件包的虚拟服务器的 URL。如果您不使用此开关,则列表中将包含计算机上所有已启用 Windows SharePoint Services 的虚拟服务器上安装的全部软件包。 |
|
-farm |
枚举在 Windows SharePoint Services 的服务器场部署上安装的所有 Web 部件包。 |
安装 Web 部件包
要确定是将 Web 部件包安装到 GAC 中还是安装到 Bin 目录中,请考虑下列问题:
| • |
是否要让该软件包由计算机上的所有虚拟服务器使用? |
| • |
是否完全信任该软件包中的程序集和资源? |
如果您对这两个问题都回答“是”,请将 Web 部件包安装到 GAC 中。GAC 中的程序集是完全受信任的,并且可由所有虚拟服务器使用。
下表列出安装到 GAC 和安装到 Bin 目录之间的区别。
| 项目 | GAC | Bin 目录 |
|
程序集位置 |
本地驱动器:\Windows\Assembly |
本地驱动器:\虚拟服务器文件系统位置\bin |
|
类资源 |
本地驱动器:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\wpresources URL:http://虚拟服务器/_wpresources |
本地驱动器:\ 虚拟服务器文件系统位置\wpresources URL:http://虚拟服务器/wpresources |
|
默认的安全信任级别 |
完全 |
部分 (WSS_Minimal) |
|
可由所有虚拟服务器访问 |
是(必须在每个虚拟服务器的 SafeControls 列表中启用程序集和类型) |
否(只能从安装有程序集的虚拟服务器访问 Web 部件包) |
|
使用 Stsadm.exe 的前提条件 |
程序集必须是具有强名称的程序集。 |
|
|
是否需要使用 -globalinstall 开关 |
是 |
否 |
注 如果您将程序集安装到 Bin 目录中,并且程序集所需的代码访问安全权限超出了 Bin 目录的默认策略,您可以在部署完成后分配这些权限。有关代码访问安全的信息,请参阅 Microsoft SharePoint Products and Technologies Developer Center 上的 Microsoft Windows SharePoint Services 2.0 软件开发工具包 (SDK)。
浙公网安备 33010602011771号