Feature是MOSS中一个重要的东西,Feature 使得基于sharepoint的用户功能定制变得简单和方便。我们使用Feature来实现网站的MasterPage的更换。写一个方法,继承SPFeatureReceiver这个抽象类,实现抽象方法即可。四个方法:FeatureActivated,FeatureDeactivating,FeatureInstalled,FeatureUninstalling,分别是激活反激活,安装反安装对应的事件。我们实现FeatureActivated和FeatureDeactivating的方法。代码如下:

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

到这里代码部分就写好了。加强签名,然后扔到GAC里。然后进行下一步,建一个Feature.xml。我们可以将Feature定义在几个范围上:Farm(服务器场),WebApplication(Web应用),Site(网站集),Web(网站),但通常定义在网站集或网站范围上。我们的Feature.xml内容如下:
<Feature
xmlns="http://schemas.microsoft.com/sharepoint/"
Id="3b387ef0-01c7-4980-bfa2-e6d37b986bac"
Title="change my masterpage"
Description="change my masterpage"
Scope="Site"
ReceiverAssembly="MySiteFeatureManager, Version=1.0.0.0, Culture=neutral, PublicKeyToken=7c96adf2aa593794"
ReceiverClass="MySiteFeatureManager.MySiteFeature"
>
<ElementManifests>
<ElementFile Location="NewMasterPage.master"/>
<ElementManifest Location="element.xml"/>
</ElementManifests>
<Properties>
<Property Key="NewMasterPage" Value="NewMasterPage.master"/>
</Properties>
</Feature>
属性介绍:
Id:Guid格式,这个可以使用VS2005或者别的工具来生成一个。
Title:Feature的标题。
Description:Feature的内容描述。
Scope:Feature的功能范围(Farm,WebApplication,Site,Web)
ReceiverAssembly:引用的程序集
ReceiverClass:引用程序集的类
ElementManifests这里我们可以看到<ElementFile Location="NewMasterPage.master"/>,所以我们在同一文件夹放一个NewMasterPage.master,masterpage注意问题请查阅相关文章;还有<ElementManifest Location="element.xml"/>,所以还要在同一文件夹放一element.xml文件,这个文件的内容如下:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="NewMasterPage" RootWebOnly="true" Url="_catalogs/masterpage">
<File Url="NewMasterPage.master" Type="GhostableInLibrary" />
</Module>
</Elements>
这里的意思是告诉它,我们的NewMasterPage.master上传到了哪个目录。
这里<ElementManifest Location="element.xml"/>的element.xml文件名可以随便自己写,只要有这个对应xml文件即可,但是Feature.xml,名称是不可改变的。
下面安装和激活这个Feature:
在目录C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES中新建一个文件夹,如:MySiteFeature。将这两个xml放入这个文件夹。
使用如下命令:
安装:stsadm –o installfeature –filename MySiteFeature\feature.xml
激活到网站集:stsadm –o activatefeature –filename MySiteFeature\feature.xml -url http://moss:81
这样Feature就安装好了。现在我们已经做好了可以更换MasterPage的Feature,在网站集的管理中的网站集功能中可以看到我们的Feature,可以随时激活或者停止我们的Feature的功能。在上面代码的基础上,可以扩展,比如根据用户组来判断是用哪个MasterPage,MasterPage的定义在xml里定义好就行了。

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述