昨天大部分是概念性的文字,今天来一点实例。
我们从最基础的Management Pack开始。
任何一个包都将保护一下代码:
(PS:构架的XSD文件,理论上微软是会提供的,不过我找遍的technet和MSDN也没有,绝望了。。。)
这是MP包XML文件最基础的结构,然后让我们看看Managementpack中将包含哪些元素,如下图:
这里对每一个元素做一个简单的介绍:
我们从最基础的Management Pack开始。
任何一个包都将保护一下代码:
(PS:构架的XSD文件,理论上微软是会提供的,不过我找遍的technet和MSDN也没有,绝望了。。。)
这是MP包XML文件最基础的结构,然后让我们看看Managementpack中将包含哪些元素,如下图:
这里对每一个元素做一个简单的介绍:
元素名称 | 功能 |
Manifest | 包含包的定义信息(身份、名称及所调用的库) |
TypeDefinitions | 类定义,不仅仅是类还包含SCOM其他对象的定义,数据模型的定义……(PS:加密之后这个部分是不可查,脚本一类的东西可以在这里进行封装。) |
Monitoring | 监视,包含监视类型(对象发现【PS:准确的说是监视对象的过滤,这部分在UI中只可以替代不可以新建】、监视单元、规则、任务等……) |
Tenplates | 模板,这个没有太多好多说,中文大家都懂。。 |
Presentation Types | 描述类型,这个和下面的Presentation都和UI有关 |
Presentation | 描述,对UI的描述元素 |
LanguagePacks | 语言包,做本地化的时候用处较大 |
Deletions | 删除对象,更新包的时候用的通过标志来跟新原有包对象,删除过期对象 |
我们来动手做一个最简单的PACK。
包的名称为: Sxt Tutorial Manifest
包的身份: Sxt.Tutorial.Manifest
包所调用的库: System.Library(PS:测试。。后面会的例子会调用更多。)
文件名: Sxt.Tutorial.Manifest.xml [注意: 文件名需要和包的身份一致,否则编译时会报错,提示你包的身份和文件名不一致。]
实现代码如下:
代码分析:
包的名称为: Sxt Tutorial Manifest
包的身份: Sxt.Tutorial.Manifest
包所调用的库: System.Library(PS:测试。。后面会的例子会调用更多。)
文件名: Sxt.Tutorial.Manifest.xml [注意: 文件名需要和包的身份一致,否则编译时会报错,提示你包的身份和文件名不一致。]
实现代码如下:
代码分析:
元素名称 | 功能 |
Identity | 身份信息 |
ID(Identity子元素) | 身份ID |
Version(Identity子元素) | 版本信息 |
Name | 名称 |
References | 调用的库集 |
Reference | 调用的库 |
Alias(Reference属性) | 库的别名 |
ID(Reference子元素) | 库的ID信息 |
Version(Reference子元素) | 所调用库的版本 |
PublicKeyToken | 公匙的标记(PS:对这个有兴趣的朋友可以去这里看看) http://www.cnblogs.com/lovablebox/archive/2007/12/05/983154.html |
OK,代码完,开始打包,把XML文件拷贝到 MPSeal.exe所在文件夹,执行下面命令:
MPSeal.exe Sxt.Tutorial.Manifest.xml /i C:\Program Files\System Center Operations Manager 2007 /Keyfile out.snk /company Sxt
完成编译之后将在MPSeal.exe所在目录生成: Sxt.Tutorial.Manifest.mp包文件。通过SCOM管理导入包就可以查看相关的信息了。
PS:除了上文之外还有以下几点需要注意:
1、Mp包对元素顺序敏感,我在编译过程因为顺序问题发生过奇怪的报错,顺序就是按照图中从上至下。
2、编译部分,我有点懒,其实可以把库包部分拷贝到其他文件夹再进行编译,输出也可以指定文件夹。有兴趣的朋友可以查看我昨天的《 SCOM2007Management Package 创建教程(一)》
3、对于XML熟悉的朋友可以先去 http://www.w3school.com.cn/x.asp学习学习。
4、库信息在管理中可以查看
5、今天网有问题连不上公司的服务器,编译过程以及结果明天补图:)
转载于:https://blog.51cto.com/findman/190637