如何:使用解决方案包部署运行状况规则
上次修改时间: 2011年11月15日
适用范围: SharePoint Foundation 2010
在开发环境中,部署新的运行状况规则非常简单直接。可以通过使用全局程序集缓存工具 (Gacutil.exe) 将程序集放到开发服务器的全局程序集缓存 (GAC) 中,来手动安装包含规则的程序集。如果已经创建了用于将规则注册到 SharePoint 运行状况分析器 的 SharePoint 功能,则可以通过使用 SharePoint Management Shell 运行 Windows Powershell cmdlet Install-SPFeature 来手动安装该功能。可以使用以下 Windows Powershell cmdlet 激活该功能并注册规则:Enable-SPFeature。
在生产环境中,手动过程并不可行,因为在此环境中,服务器场可能包含多台服务器,并且随着时间的推移可能会有更多的服务器联机。在生产环境中,最佳方法是使用解决方案包。可以上载一次解决方案包,然后该解决方案将在服务器场中的所有服务器之间传播。当有新的服务器联机时,它们会在设置过程中自动获得该解决方案。
本主题介绍如何创建包含运行状况规则的解决方案包,以及如何将解决方案上载和部署到服务器场。本主题假设您已完成了如何:创建运行状况规则和如何:创建用于注册运行状况规则的功能中所述的过程。
创建解决方案包
解决方案包是一个文件扩展名为 .wsp 的 CAB 文件,其中包含必须部署到服务器场中的服务器上的所有文件。因为我们要使用解决方案包来部署运行状况规则,所以该包将安装两个文件:feature.xml 和规则的程序集。每个解决方案包都还必须包含一个名为 manifest.xml 的文件,该文件包含用于安装解决方案的指令。
创建解决方案包的第一步是创建 manifest.xml。第二步是创建 Diamond Directive File (.ddf),以指示 MAKECAB.EXE 命令行实用程序在输出 CAB 文件中包含哪些文件。最后一步是使用 MAKECAB.EXE 编译 CAB 文件。
为解决方案包创建清单
右键单击"开始"菜单中的 Visual Studio,然后选择"以管理员身份运行",以管理员身份打开该程序。
打开包含运行状况规则代码的项目。
创建一个 Solution 文件夹。
在"解决方案资源管理器"中,右键单击项目名称,选择"添加",然后选择"新建文件夹"。键入 Solution。
创建解决方案清单文件。
右键单击"Solution"文件夹,选择"添加",然后选择"新建项目..."。在"添加新项"对话框中,选择"XML 文件"模板。将文件命名为 manifest.xml。然后单击"添加"。
在编辑器中打开 manifest.xml。
删除该文件中的第一(唯一)行。在该行的位置,粘贴以下代码。
<Solution SolutionId="00000000-0000-0000-0000-000000000000" xmlns="https://schemas.microsoft.com/sharepoint/"> <FeatureManifests> <FeatureManifest Location="FeatureFolderName\feature.xml" /> </FeatureManifests> <Assemblies> <Assembly DeploymentTarget="GlobalAssemblyCache" Location="AssemblyName.dll" /> </Assemblies> </Solution>
将 SolutionId 属性的值替换为新生成的 GUID(不带括号)。
可以使用 GuidGen 工具 (guidgen.exe) 来获得新 GUID。在 Visual Studio 中的"工具"菜单上,选择"创建 GUID"。在"创建 GUID"对话框中,选择"4. 注册表格式",然后单击"复制"。将剪贴板的内容粘贴到 SolutionId 属性后面的引号之间。删除 GUID 中的括号。
修改 FeatureManifest 元素的 Location 属性的值,将"FeatureFolderName"替换为解决方案中包含 feature.xml 文件的文件夹的名称。
在部署解决方案时,会在服务器场中的每台服务器的 %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\FEATURES 文件夹中创建一个同名文件夹。
修改 Assembly 元素的 Location 属性的值,将"AssemblyName.dll"替换为规则程序集的文件名。
保存 manifest.xml。
为解决方案包创建指令文件
在 Visual Studio 项目中创建一个程序包文件夹。
在"解决方案资源管理器"中,右键单击项目名称,选择"添加",再选择"新建文件夹"。键入 Package。
这是 MAKECAB.EXE 命令行实用程序的输出目录。
在 Visual Studio 项目的"Solution"文件夹中创建一个 Diamond Directive File (.ddf) 文件。
在"解决方案资源管理器"中,右键单击名为"Solution"的文件夹,选择"添加",再选择"新建项目..."。在"添加新项"对话框中,选择"文本文件"模板。将该文件命名为 cab.ddf。然后单击"添加"。
该文件将用于 MAKECAB.EXE 命令行实用程序。
在编辑器中打开 cab.ddf。复制以下标记并将其粘贴到 cab.ddf 文件中。
.OPTION EXPLICIT ; Generate errors .Set CabinetNameTemplate=SolutionName.wsp .set DiskDirectoryTemplate=CDROM ; All cabinets go in a single directory. .Set CompressionType=MSZIP;** All files are compressed in cabinet files. .Set UniqueFiles="ON" .Set Cabinet=on .Set DiskDirectory1=Package ; This is the output directory. ; Files to include. Solution\manifest.xml manifest.xml Features\FeatureFolderName\feature.xml FeatureFolderName\feature.xml bin\Release\AssemblyName.dll AssemblyName.dll
修改 CabinetNameTemplate 参数的值,将"SolutionName"替换为要用于解决方案包的文件名。(保留 .wsp 文件扩展名。)
将"FeatureFolderName"(出现两次)替换为解决方案中包含 feature.xml 文件的文件夹的名称。
将"AssemblyName.dll"(出现两次)替换为规则程序集的文件名。此外,如果程序集的相对路径不是"bin\Release\",则将该字符串替换为正确的路径。
保存 cab.ddf。
创建解决方案包文件
打开 Visual Studio 命令提示符。
导航到 Visual Studio 项目所在的目录。
cab.ddf 中和下一步将发出的命令中的文件路径是相对于 Visual Studio 项目目录的路径。
在命令提示符处,发出以下命令:
makecab /f solution\cab.ddf
将在"Package"文件夹中创建一个解决方案包。
上载和部署解决方案
创建新的解决方案包后,应在 SharePoint 安装上测试该解决方案包,最好在干净的映像上测试,而不要在开发服务器上测试。测试涉及两项任务:首先,必须将解决方案包上载到服务器场。然后,必须部署该解决方案。
备注
您的解决方案包含一个作用范围为服务器场级别的功能。由于服务器场级别的功能在安装时会自动激活,因此您不必发出命令来手动激活它。
将解决方案包上载并部署到服务器场
通过右键单击"开始"/"管理工具"菜单上的项并选择"以管理员身份运行",以管理员身份打开 SharePoint Management Shell。
在命令提示符处,发出以下命令以上载该解决方案。(替换解决方案包的完整路径和文件名。)
add-spsolution -literalpath <full path and filename.wsp>
解决方案包现在将上载到服务器场。
在命令提示符处,发出以下命令以部署该解决方案。(替换 .wsp 文件的正确文件名。)
install-spsolution -identity filename.wsp -force -gacdeployment
您的运行状况规则现在已安装并注册。可以通过检查"管理中心"的"监控"部分的"运行状况分析器规则"列表来验证这一点。
请参阅
任务
概念
其他资源
https://msdn.microsoft.com/zh-cn/library/cc441431(v=office.14)