我必须给客户端一个.wsp文件
请举例说明如何在功能中包含.stp,并将该功能与其他文件一起包含以创建.wsp文件。
我已经通过很多网站,他们显示的步骤,但我不明白如何处理,因为我有不同的文件,如.dll文件,自定义事件接收器功能,自定义Web部件和网站模板.stp文件这一切我需要包括。我需要一个exampkle,我可以在其中看到manifest.xml文件的确切元素名称或语法。例如:要包含和delpy .dll文件,我们使用assembly元素和类似功能FeatureMainfest元素,我需要一个其他元素的例子,我可以包装所有文件来创建.wsp包
请帮我解决这个问题 谢谢 Abdul Afroze
答案 0 :(得分:0)
阿卜杜勒,
看看以下示例。这将是您的主要manifest.xml文件。
<?xml version="1.0" encoding="utf-8"?>
<!-- Solution created by WSPBuilder. 10/21/2010 11:22:17 AM -->
<Solution xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" SolutionId="c0096412-9324-4bc5-a411-652d319efe59" xmlns="http://schemas.microsoft.com/sharepoint/">
<FeatureManifests>
<FeatureManifest Location="xxxxxxx\feature.xml" />
</FeatureManifests>
<Assemblies>
<Assembly Location="xxxxxxxxxxxx.dll" DeploymentTarget="GlobalAssemblyCache" />
</Assemblies>
<TemplateFiles>
<TemplateFile Location="LAYOUTS\xxxxxxx\xxxxxxx.asmx" />
</TemplateFiles>
<Resources>
<Resource Location="xxxxxxx\ListTemplates\xxxxxxx.stp" />
</Resources>
</Solution>
在功能recivers类中,您需要将模板文件上传到模板文档库。这是一个非常简单的例子。
private void UploadTemplates(SPDocumentLibrary templateGallery, string[] templateFiles)
{
try
{
if (templateGallery != null)
{
foreach (string str in templateFiles)
{
FileInfo info = new FileInfo(str);
SPQuery query = new SPQuery();
query.Query = string.Format("<Where><Eq><FieldRef Name='FileLeafRef'/><Value Type='Text'>{0}</Value></Eq></Where>", info.Name);
SPListItemCollection items = templateGallery.GetItems(query);
int[] numArray = new int[items.Count];
for (int i = 0; i < items.Count; i++)
{
numArray[i] = items[i].ID;
}
for (int j = 0; j < numArray.Length; j++)
{
templateGallery.Items.DeleteItemById(numArray[j]);
}
byte[] file = File.ReadAllBytes(str);
templateGallery.RootFolder.Files.Add(info.Name, file);
}
}
else
{
// templateGallery is null
}
}
catch (Exception exception)
{
// handle your errors
}
}