using System.Collections.Generic;
using System.Text;
using System.IO;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.Utilities;
namespace AddStpTemplate
{
class AddStpTemplate
{
static void Main(string[] args)
{
//添加网站模版到网站集模版库中
SPSite site = new SPSite("http://server");
SPWeb web = site.OpenWeb();
//网站集模版库url
string folderUrl = "http://server/_catalogs/wt";
//添加模版
SPFolder folder = web.GetFolder(folderUrl);
if (folder.Exists)
{
FileStream fs = new FileStream(@"stp file path", FileMode.Open);
byte[] content = new byte[fs.Length];
fs.Read(content, 0, (int)fs.Length);
folder.Files.Add("stp file name", content);
fs.Close();
}
else
Console.WriteLine("Folder Not Exists!");
}
}
}
其实上述代码就实现了一个wss经常能够用到的“上载”功能,改一下上载路径和文件路径,就可以用到其他地方。
来说一下wsp模版。准确的说,wsp并不能称之为模版,官方名字是应用程序解决方案包(webapplicaiton solution package),有时也说应用程序模版。那么wsp和stp有什么区别呢
1.stp模版是网站级别的,wsp是webapplicaiton级别的,这从部署上就可以看出来,stp是部署在网站集的模版库上的,而wsp是部署在wss管理中心的(server级别的).部署级别的不同直接导致了应用级别不同。stp模版只能应用在创建网站时,而wsp在创建网站集的时候就可以用。这里要补充一点,“stp模版只能应用在创建网站时”并非是说以stp模版创建的网站不能再有子网站,这一说法绝对是错误的,wss里说的是“site by site”,site是可以无限创建的。stp是site级别的,还是指stp模版不能保存子网站。
2.stp和wsp都能保存的有:webpart,list,用户组权限......
3.某些自定义的网站样式stp不能保存,而wsp可以.
以后想到再添加,也欢迎大家增加。
关于wsp的制作,先给文章链接。
以下是用wspbuilder制作wsp,都是中文
http://blog.joycode.com/choral/archive/2007/06/15/104276.aspx
http://www.cnblogs.com/ttinfo/archive/2007/06/19/789386.html
来看msdn提供的方法,前面是英文原文,后面是翻译:
http://msdn2.microsoft.com/en-us/library/bb466225.aspx
http://www.cnblogs.com/Sunmoonfire/archive/2007/05/31/763141.html
利用vs2005制作wsp:
http://www.andrewconnell.com/blog/articles/UsingVisualStudioAndMsBuildToCreateWssSolutions.aspx
http://msdn2.microsoft.com/en-us/library/bb530302(d=ide).aspx
http://blog.csdn.net/onlyzhangqin/archive/2007/07/11/1685337.aspx
好了,3种方法,有简单,有复杂,大家各取所需,不再详述。
就写到这里,过几天有新增内容再加。
END