zoukankan      html  css  js  c++  java
  • SharePoint: Feature 定制 实例

    Feature Name: NDPTemplate1
    Class Library Name: NDPTemlate1.dll
    1.建立dll, 项目命名为NDPTemplate1
    2.引入Microsoft.SharePoint
    3.加入Template,Features,NDPTemplate1文件夹, 层次为:Template\Features\NDPTemplate1
    4.在NDPTemplate1文件夹中加入feature.xml,elements.xml
    5.为两个xml文件引入架构,路径"C:\Program Files\Common Files\microsoft shared\Web Server Extensions\12\TEMPLATE\XML\wss.xsd"
    6.完成feature.xml,elements.xml的内容(wss架构,Module,File结点)
    feature.xml:
    <?xml version="1.0" encoding="utf-8" ?>
    <Feature xmlns="http://schemas.microsoft.com/sharepoint/"
        Id="99A54BEF-C670-460e-944B-AA57DA5F036A"
        Title="NDPTemplate1"
        Scope="Web"
        Version="1.0.0.0"
        ReceiverAssembly="NDPTemplate1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=112abb48695fd913"
        ReceiverClass="NDPTemplate1.FeatureReceiver"
        >
        <ElementManifests >
            <ElementManifest Location ="elements.xml"/>
        </ElementManifests>
        </Feature>

    elements.xml:
    <?xml version="1.0" encoding="utf-8" ?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/"  >

    </Elements>

    7.加入FeatureReceiver类,实现抽象类方法,完成FeatureAction事件
    class FeatureReceiver:SPFeatureReceiver
        {
            public override void FeatureActivated(SPFeatureReceiverProperties properties)
            {
                SPWeb web = properties.Feature.Parent as SPWeb;
                Property.RootSite = web.Site;

                WikiPage wikiP = new WikiPage();
                wikiP.CreateWikiWeb();

                Document doc = new Document();
                doc.CreateDocs();

                Hisoft hi = new Hisoft();
                hi.CreateHisoftWeb();
            }

            public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
            {
                SPWeb web = properties.Feature.Parent as SPWeb;
                foreach (SPWeb  web1 in web.Webs )
                {
                    foreach (SPWeb  web2 in web1.Webs )
                    {
                        web2.Delete();
                    }
                    web1.Delete();
                }
            }

            public override void FeatureInstalled(SPFeatureReceiverProperties properties)
            {
                throw new NotImplementedException();
            }

            public override void FeatureUninstalling(SPFeatureReceiverProperties properties)
            {
                throw new NotImplementedException();
            }
        }

    8.Build项目
    9.完成gacutil.bat使NDPTemplate1.dll加入gac,从c:\windows\Assembly中找到NDPTemplate1, 获得PublicKeyToken的值,修改feature.xml中的公钥
    gacutil.bat:
    @set GACUTIL="C:\Windows\Microsoft.NET\Framework\v1.1.4322\gacutil.exe"
    %GACUTIL% -i bin\Debug\NDPTemplate1.dll

    10.Build项目
    11.Install.bat[就是将整个NDPTemplate1文件夹拷贝到c:\..\12\Template\Features下]
    Install.bat:
    @SET TEMPLATEDIR="c:\program files\common files\microsoft shared\web server extensions\12\Template"
    @SET STSADM="c:\program files\common files\microsoft shared\web server extensions\12\bin\stsadm"


    Echo Copying files
    xcopy /e /y TEMPLATE\* %TEMPLATEDIR%

    Echo Installing feature
    %STSADM% -o installfeature -filename  Feature1\feature.xml -force
    IISRESET

    12.激活Feature
    13.找bug

  • 相关阅读:
    mysql中cast() 和convert()的用法讲解
    li内有span需要右浮的问题
    svn检出项目
    vue中的 ref 和 $refs
    for in 循环 和for循环 for of循环
    setInterval()、clearInterval()、setTimeout()和clearTimeout() js计数器方法(还有第三个参数)
    利用history.pushState()实现页面无刷新更新
    函数isNaN() parseFloat() parseInt() Math对象
    一个关于margin-top的问题
    vue 父子组件之间传参
  • 原文地址:https://www.cnblogs.com/qixue/p/1589940.html
Copyright © 2011-2022 走看看