我正在尝试部署一系列功能,为此我需要选择目标网站,然后使用:
objWeb.Features.Add(new Guid({guid of feature}));
我的问题是如何选择此网站,我发现的所有帮助都是使用其构造函数创建网站,然后跟踪它,我想在哪里打开现有网站。
谢谢。
答案 0 :(得分:2)
这取决于您要执行代码的位置。如果您有一个sharepoint上下文,那么您可以使用
SPWeb oWebsite = SPContext.Current.Web;
oWebsite.Features.Add(new Guid({guid of feature}));
或
using(SPWeb oWebsite = SPContext.Current.Site.OpenWeb("Website_URL"))
{
oWebsite.Features.Add(new Guid({guid of feature}));
}
例如,如果您使用的是控制台应用程序,并且没有SPContext,则可以使用
using(SPSite oSiteCollection = new SPSite("http://Server_Name"))
{
using(SPWeb oWebsite = oSiteCollection.OpenWeb("Website_URL"))
{
oWebsite.Features.Add(new Guid({guid of feature}));
}
}
有许多其他方法可以获取SPWeb对象,但这取决于您对该网站的信息(名称,网址,层次结构中的位置)
如果要激活针对网站集或Web应用程序作用域的功能,则可以以类似方式获取SPSite或SPWebApplication。
的SPSite:
SPContext.Current.Site
或
SPSite oSiteCollection = new SPSite("Absolute_URL")
SPWebApplication:
SPContext.Current.Site.WebApplication
或
SPWebApplication.Lookup(new Uri("http://MyServer:989"));
并且在这些对象中的任何一个上,您都可以调用
object.Features.Add(...))
与上述代码相同。
注意:功能的范围在feature.xml中指定,有关详细信息,请参阅以下内容: http://msdn.microsoft.com/en-us/library/ms436075.aspx
答案 1 :(得分:0)
对于Web范围的功能,请使用:
using (SPWeb currentSite = SPContext.Current.Web)
{
currentSite.WebFeatures.Add(new Guid("{GUID}"));
}
对于网站范围的功能,请使用:
using (SPWeb currentSite = SPContext.Current.Web)
{
currentSite.Features.Add(new Guid("{GUID}"));
}