我有一个sharepoint解决方案,接下来是什么

时间:2010-07-13 07:39:30

标签: sharepoint sharepoint-2007

我是sharepoint的新手。我有一个C#解决方案,它有masterpages和用户控件,可以在sharepoint站点中使用。我已经设置了我的sharepoint dev VM,我可以浏览默认的sharepoint内容。

如何将母版页添加到Sharepoint?我从哪里开始?

3 个答案:

答案 0 :(得分:1)

我的建议是将母版页部署为功能而不是手动过程。解决方案(WSP)和功能是将内容/功能部署到sharepoint的受支持方式。一个非常棒的sharepoint开发工具称为WSPBuilder

母版页作为“模块”部署到sharepoint中,您将放置到该功能的elements.xml文件中。

将解决方案视为具有不同扩展名的.cab文件。其中包含一个名为feature.xml的文件,该文件在部署时定义了包的标题。可以激活和停用功能,以将您的内容部署和取消部署到服务器场的某些部分。

以下是作为模块部署的css文件的示例...主页面类似但是,它们将部署到母版页库而不是样式库中。此模块将自定义css文件部署到网站集的“样式库”中。在部署之后,我使用“功能接收器”(事件处理程序)来获取对SPSite对象的引用并修改其备用样式表,以便进行覆盖。

Feature.xml

<?xml version="1.0" encoding="utf-8" ?>
<Feature xmlns="http://schemas.microsoft.com/sharepoint/" 
         Id="63BB13A0-1F9C-4c3b-BE60-10E59CEE0113"
         Title="Custom CSS Feature"
         Description="Deploying a custom CSS using a feature"
         Version="1.0.0.0"
         Hidden="FALSE"
         Scope="Site"
         ReceiverAssembly="CustomCSSFeature, Version=1.0.0.0, Culture=neutral, PublicKeyToken=24f1377a8414d2ed"
         ReceiverClass="CustomCSSFeature.FeatureReceivers.CustomCSSFeatureReceiver"
         >
  <ElementManifests>
    <ElementManifest Location="elements.xml"/>
  </ElementManifests>
</Feature>

elements.xml - 你要修改它以反映主页应该部署的位置我会认为这是Url属性。 Path =“Styles”是指样式表所在的要素本身内的相对路径(例如,在您的visual studio中,我在名为CustomCSSFeature的文件夹下面有一个称为样式的子文件夹,这是样式表存在的位置)

    <?xml version="1.0" encoding="utf-8" ?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
  <Module Name="OSGStyles" Url="Style Library" Path="Styles" RootWebOnly="TRUE">
    <File Url="custom-css.css" Type="GhostableInLibrary" />
  </Module>
</Elements>

然后,在我的功能接收器类中,我已激活/停用处理程序,将样式表“应用”到发布网络。在您的情况下,您也可以在功能接收器中更改网站的默认母版页。

public override void FeatureActivated(SPFeatureReceiverProperties properties)
    {
        SPSite site = properties.Feature.Parent as SPSite;

        using (SPWeb web = site.OpenWeb())
        {
            PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(web);
            publishingWeb.AlternateCssUrl.SetValue(web.ServerRelativeUrl + 
                "/Style Library/custom-css.css", true);
            publishingWeb.Update();
            web.Update();
        }
    }

    public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
    {
        SPSite site = properties.Feature.Parent as SPSite;

        using (SPWeb web = site.OpenWeb())
        {
            PublishingWeb publishingWeb = PublishingWeb.GetPublishingWeb(web);
            publishingWeb.AlternateCssUrl.SetValue("", true);
            publishingWeb.Update();
            web.Update();
        }
    }

答案 1 :(得分:0)

将它们复制到SharePoint根目录(对于SP 2007默认位置为C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\,对于SP 2010而不是“12”,则为“SharePointRoot”)

从那里,将您的文件复制到\TEMPLATE\LAYOUTS文件夹,然后您可以从您的aspx页面引用母版页,例如“/_layouts/mymasterpage.master”。

UserControls进入\TEMPLATE\CONTROLTEMPLATES

Get to know the directory structure in the 12 Hive

Exploring the 12 Hive : TEMPLATE Directory

另一种方法是将您的母版页放在母版页列表中。使用此链接访问母版页列表并上传您的母版页:http:/// _ catalogs / masterpage

答案 2 :(得分:-1)

您可以使用SharePoint Designer 2007添加母版页。

一般情况下,我建议您查看此问题的答案:Learning Sharepoint