在WSS SDK中有一篇文章介绍了使用Modules添加文件到网站定义中(可以在中搜索Using Modules to Add Files to a Site Difinition找到),不过很多东西只是稍微提了一下,具体怎么操作并没有讲到。
一般的,我们可以用下面的方法使用Module,
修改默认的Module
在STS网站定义中的ONET.XML中有一个默认的Default Module:
<Modules>
<ModuleName="Default"/>
</Modules>
然后在下面的 <Modules/Module Name="Default">中有<File>子元素。我们可以按照它的格式添加新的File元素即可。如:
<FileUrl="mslst.aspx">
<AllUsersWebPartWebPartOrder="1"WebPartZoneID="Body">
<![CDATA[
<WebPartxmlns="/WebPart/v2">
<Assembly>AssemblyName,Version=Version,Culture=neutral,
PublicKeyToken=PublicKeyToken</Assembly>
<TypeName>TypeName</TypeName>
<Description></Description>
<FrameType>None</FrameType>
</WebPart>
]]>
</AllUsersWebPart>
</File>
其中, <AllUsersWebPart>就是用来指定页面上WebPartZone中的Web部件的。当然,如果不需要指定Web部件的话,就不需要使用<AllUsersWebPart>了。
另外需要注意的是,上面示例代码中的<File>元素的Url属性值指定的是网站定义中此文件的路径,也是需要在网站中访问此文件的路径自定义Module。由于<Module Name="Default">的Path属性的值为空,因此,此文件(mslst.aspx)的路径应该也在网站定义的根路径下,和default.aspx在同一个目录。使用默认的Module不能添加子目录(至少我还没有试出来。不知道哪位高手有这方面的经验),这是不太方便的。如果需要添加子目录的话,可以照下面的方法做: 新建一个Module
添加一个Module可以在ONET.XMl中的Project/Configurations/Configuration/Modules下新建一个Module子元素,如:
<Modules>
<ModuleName="Default"/>
<ModuleName="NewMd"/>
</Modules>
更改此Module的属性然后需要相应的在 Project/Modules元素下新建一个Module元素,其中: Path属性指定此Module对应的文件夹的相对路径(相对与此ONET.XMl),Url属性指定在网页中访问此网站的路径。另外还有一个 RootWebOnly 属性指定此Module是否只有在根网站才有。如:
<ModuleName="NewWd"Url="_New"Path="New/">
<Module/>
添加文件然后就是象上面一样,在这个Module元素下添加File元素了。
使用上面介绍的方法可以帮助我们定义自己的网站定义。
如果觉得《使用Module自定义网站定义(Site Definition)》对你有帮助,请点赞、收藏,并留下你的观点哦!