2007年5月30日,星期三

装订双色球推荐一注

我想快速介绍的双色球推荐一注的一方面是SharePoint双色球推荐一注与网站定义之间的关系。网站定义由开发人员创建,然后由网站所有者用于创建新网站。 “将网站另存为模板”双色球推荐一注也可以使用许多此双色球推荐一注,尽管有一些细微的差异。此外,由于我认为某些网站信息/双色球推荐一注(SharePoint无法正确保存到中),在SharePoint发布网站上删除了“将网站另存为模板”双色球推荐一注(或者至少网站设置中的链接是通过HideCustomAction双色球推荐一注元素)。 stp文件。因此,开发人员通常会在自定义中创建网站定义,而WSS SDK中已充分记录了该过程。

如果创建了网站定义,则可以通过多种方式使用双色球推荐一注。这些是:-

  1. 根据定义创建站点,然后将双色球推荐一注部件部署到该站点。
  2. 在使用双色球推荐一注定义创建网站之前,请将其包括在网站定义(onet.xml)中。
  3. 使用双色球推荐一注装订将双色球推荐一注与网站定义相关联。

由于第一个选项并未真正将双色球推荐一注与网站定义相关联,因此我们将重点介绍选项2和3。

2.在网站定义中包含双色球推荐一注

如果尚未部署网站定义,并且尚未从中创建任何网站,则应使用此选项。与网站定义相关联的双色球推荐一注所在的onet.xml文件的部分可能类似于:

<组态 ID="0" 名称="空白互联网">

    <网站双色球推荐一注>

        <特征 ID="C85E5759-F323-4EFB-B548-443D2216EFB5" />

        <特征 ID="A392DA98-270B-4e85-9769-04C0FDE267AA" />

        <特征 ID="7C637B23-06C4-472d-9A9A-7C175762C5C4" />

    </网站双色球推荐一注>

    <Web双色球推荐一注>

        <特征 ID="00BFEA71-DE22-43B2-A848-C05709900100" />

        <特征 ID="00BFEA71-E717-4E80-AA17-D0C71B360101" />

    </Web双色球推荐一注>

    <模组>

        <模组 名称="首页" />

    </模组>

</组态>


ID值当然是双色球推荐一注GUID。 网站双色球推荐一注元素包含在使用网站定义创建网站集时应激活的双色球推荐一注,而WebFeatures元素包含在使用定义在网站集内创建标准网站时的双色球推荐一注。

3.使用双色球推荐一注装订将双色球推荐一注与网站定义相关联

当网站定义已被使用(并且网站已创建)时,应使用此选项。这是因为一旦部署了站点定义,就存在修改风险,因为文件系统上的站点定义文件用于被重影(未修改)的页面。

要使用特征装订,您首先需要要链接到站点定义的特征-应该以常规方式创建这些特征。您应该创建一个第二个双色球推荐一注来进行实际的装订。各种文件的样本值如下所示:

如果将双色球推荐一注包装在解决方案中,则manifest.xml文件:

<?XML文件 ="1.0" 编码方式="utf-8"?>

< XML文件ns="http://schemas.microsoft.com/sharepoint/" 解决方案编号="26E1A1D9-7BB2-4e76-888E-B20184B16E3B">

  <双色球推荐一注清单>

    <特征Manifest 位置="COB.Demos.FeatureStapling \ feature.xml" />

  </双色球推荐一注清单>

</>

定义双色球推荐一注“标题”信息的feature.xml文件:

<?XML文件 ="1.0" 编码方式="utf-8" ?>

<特征 ID="4AF9999A-0517-4224-9ED3-D2F9F87D92E2"

        标题="COB.Demos.FeatureStapling"

        描述="将一组双色球推荐一注装订到自定义网站定义。双色球推荐一注/站点定义在stapling.xml中定义。"

        ="1.0.0.0"

        范围="农场"

        =""

        XML文件ns="http://schemas.microsoft.com/sharepoint/">

  <元素清单>

    <元素清单 位置="stapling.xml" />

</元素清单>

</特征>


最后,stapling.xml文件中的核心双色球推荐一注定义:

<元素 XML文件ns="http://schemas.microsoft.com/sharepoint/">

  <特征SiteTemplateAssociation ID="F6924D36-2FA8-4f0b-B16D-06B7250180FA" 模板名称="MySiteDefName#0" />

  <特征SiteTemplateAssociation ID="94C94CA6-B32F-4da9-A9E3-1F3D343D7ECB" 模板名称="MySiteDefName#0" />

  <特征SiteTemplateAssociation ID="02464C6A-9D07-4F30-BA04-E9035CF54392" 模板名称="MySiteDefName#0" />

</元素>



特征SiteTemplateAssociation元素将双色球推荐一注GUID映射到站点定义-请注意,TemplateName属性值的格式为<SiteDefName>#<ConfigurationID>。显然,这提供了一定程度的灵活性,并允许您使用站点定义的不同配置来做相当复杂的事情。

最后要注意的是,特征装订不会影响已经从站点定义创建的任何站点,只会影响后续站点。唯一的方法是在站点上单独激活双色球推荐一注,尽管显然,STSADM脚本可以帮助您针对多个站点激活多个双色球推荐一注。


40条评论:

匿名 said...

克里斯你好

感谢您的精彩文章。

我可以使用双色球推荐一注装订双色球推荐一注将网站集范围的双色球推荐一注添加到Web吗?

这样,当我创建一个新站点时,就会激活我的双色球推荐一注。

最好的祝福

阿米特

克里斯·奥'Brien说过...

阿米特

是的,您可以装订网站集范围内的双色球推荐一注。但是,请记住,该双色球推荐一注将位于网站集而不是网站级别。这意味着当使用网站定义来创建 顶级网站(即网站集),该双色球推荐一注将被自动激活。

希望这可以帮助,

克里斯。

匿名 said...

克里斯,你好

感谢您的阅读。

我还有一个有关双色球推荐一注装订的问题。当我使用以下语句时,

特征SiteTemplateAssociation ID="94C94CA6-B32F-4da9-A9E3-1F3D343D7ECB" 模板名称="全球"

如果我是对的,它将影响所有网站模板。它也适用于将来将要创建的网站模板吗?

提前致谢。

斯蒂金

克里斯·奥'Brien说过...

斯蒂恩

Yes, you are correct in that all sites will have the 特征 if it is stapled to the 全球 template. However, note that 特征-stapling only affects sites which are 后来 创建的,而不是已经存在的站点。

要修改已经存在的站点,您需要使用STSADM -o installfeature / STSADM -o activatefeature分别向其部署双色球推荐一注。

HTH,

克里斯。

匿名 said...

克里斯,你好

感谢您的文章,它确实对我有很大帮助。

现在我有一个关于自定义网站模板的问题,

在本文中,您正在谈论将双色球推荐一注装订到网站定义中,但是我可以通过某种方式将双色球推荐一注装订到网站模板库中的自定义网站模板吗?

我尝试使用自定义网站模板而不是网站定义创建新网站时,该双色球推荐一注仍在新网站中,但默认情况下未激活该双色球推荐一注,您必须手动激活该双色球推荐一注,有没有办法默认情况下激活的双色球推荐一注?

约翰

克里斯·奥'Brien说过...

嗨,约翰,

这是一个有趣的问题。实际上,这凸显了网站定义和网站模板之间的差异之一。网站模板只是自自基础站点定义创建以来已应用于该站点的自定义或更改(即“增量”)。因此,仅当该SharePoint网站服务器上存在基本网站定义时,网站模板才有效。

我认为您看到该双色球推荐一注存在但默认情况下未激活的原因是因为在使用的基本站点定义中,该双色球推荐一注也存在但默认情况下未激活。换句话说,此行为附加到网站定义,而不是网站模板。

因此,我认为您需要使用自定义网站定义来实现所需的双色球推荐一注。

HTH,

克里斯。

匿名 said...

似乎已完成站点配置之前已激活了statpled双色球推荐一注,在激活双色球推荐一注代码时,我们试图访问列表,但收到一条错误消息,未找到列表。
网站配置完成后是否有激活该双色球推荐一注的双色球推荐一注?

麦克风
麦克风

克里斯·奥'Brien说过...

嗨,迈克,

不幸的是,我认为没有。如果我没记错的话,站点/网站是可用的,但是没有任何“较小”的东西,例如列表或项目。显然这很不方便。

有两种选择:

-在双色球推荐一注接收器中创建SPTimer作业,此后将执行处理
-从SPWebProvisioningProvider派生出不同角度来控制在预配过程中执行的代码。我从未做过,但是您也许可以调用基本方法,然后立即进行工作。

如果您尝试使用这些方法中的任何一种,都将有兴趣听到您的进展。祝你好运..

克里斯。

混乱说过...

在这种情况下(装订的双色球推荐一注取决于站点定义中的列表),我处理的最佳方法是将列表放入双色球推荐一注中。

克里斯·奥'Brien说过...

有趣的是,我可以看到它可能如何工作。很好,谢谢您的评论。

克里斯。

匿名 said...

克里斯,你好

如果我将我的自定义双色球推荐一注与团队网站定义结合在一起。这是否意味着每当我使用团队网站模板创建网站时,我的自定义双色球推荐一注都会自动激活?

谢谢,
桑杰

克里斯·奥'Brien说过...

嗨,桑杰,

是的,那是完全正确的。由于不支持修改现成的网站定义,因此这为我们提供了一种向标准定义添加自定义双色球推荐一注的方法。

HTH,

克里斯。

奉爱说过...

克里斯,你好

谢谢你的精彩文章。

根据该帖子,新双色球推荐一注将仅部署到新创建的站点。有什么方法可以在不使用STSADM的情况下将新双色球推荐一注部署到现有站点?我可以在“ 特征Activated”事件的代码中执行此操作吗?

谢谢,
巴克提

克里斯·奥'Brien说过...

嗨,巴克提,

可以 通过一次双色球推荐一注激活对层次结构中的所有站点进行更改,但这并不能很好地适应模型。当针对站点激活双色球推荐一注时,想法是它只会修改该站点。

我的建议是,如果可以的话,请继续使用该模型-其他任何事情都可能引起混淆,尤其是与SharePoint环境中的其他开发人员/管理员一样。

HTH,

克里斯。

索拉卜说过...

克里斯,你好。

我正在尝试做这件事.....
我想在我的团队站点中添加站点列表...是否可以在团队站点中添加SITES列表.... ??

克里斯·奥'Brien说过...

@saurabh,

不确定要向单个团队网站还是团队网站添加网站列表 定义 (这样,所有随后创建的团队站点都将获得列表),但是这两种方式都是可行的。

-单个团队网站:添加/编辑Web部件页面并添加适当的Web部件(例如,目录Web部件,Summary Link Web部件)
-团队站点定义:使用'AllUsersWebPart'标签添加将适当的Web部件添加到新Web部件页面的双色球推荐一注

HTH,

克里斯。

匿名 said...

克里斯,

只是想知道您创建定制网站定义的频率是多少?我通常更喜欢使用开箱即用的网站定义,然后通过带有对象模型的双色球推荐一注向网站添加或删除构件(列表,Web部件等)。自定义站点def添加了大量的XML来进行维护和调试,就我个人而言,我更喜欢C#而不是尖括号。你怎么认为?

谢谢,
丹尼斯

克里斯·奥'Brien说过...

嗨,丹尼斯,

老实说,我最近的重点是WCM网站,而整个重点都放在网站定义和协作方面。但是,我认为将双色球推荐一注添加到标准站点定义中的想法通常可以更好地工作,但是我想这通常归结为是否从一个模板创建了许多站点,或者所有自定义都围绕一个站点进行。

我可以看到通过代码使用双色球推荐一注的吸引力,但是如果一切仍然基于双色球推荐一注框架,那么您真的摆脱了XML吗?

干杯,

克里斯。

仙野说过...

克里斯,你好

我有一个普通双色球推荐一注,其作用域是站点级别,可在不使用FeatureEventReceiver(仅xml)的情况下创建文档库。

手动激活时,此双色球推荐一注正常工作,但是当我使用订书机双色球推荐一注将此第一个双色球推荐一注链接到Global#0定义时,它没有´工作。我的订书机双色球推荐一注仅限于“农场”级别,并且有新的网站集´没有新的文档库。

有什么建议吗?

干杯

菲比奥

未知说过...

克里斯,
您知道我们装订后如何破坏双色球推荐一注。

我观察到,当我们停用双色球推荐一注(装订另一个双色球推荐一注)时,装订工作并未发生。

谢谢,
维努

匿名 said...

克里斯,你好

感谢您的尼斯帖子。我有关于激活的问题>我在“农场”级别有一项双色球推荐一注,在网络级别有一项具有“项目事件”的双色球推荐一注,"GLOBAL"。但是,我看到,无论何时创建站点,尽管激活了我的双色球推荐一注,但它不会触发双色球推荐一注中的事件。如果您可以为此指导我,那将非常有帮助。

克里斯·奥'Brien说过...

@Seno,

嗯,对不起,您在这里没有太多的想法,看不到您所做的任何错误。您可能想要在网站集上尝试对双色球推荐一注进行范围界定,以查看是否可能是问题所在。

HTH,

克里斯。

克里斯·奥'Brien说过...

@mvmastry,

您是说根据定义创建的新​​网站吗? 该双色球推荐一注已被停用继续使用装订双色球推荐一注吗?如果是这样的话,这是个好问题,恐怕我不知道答案!可能是您需要在双色球推荐一注停用中运行一些代码才能执行此操作。

但是,如果您希望从激活装订器时已创建的站点中停用该双色球推荐一注,那么我不希望发生这种情况-您需要绕过每个站点并停用已装订的双色球推荐一注。

HTH,

克里斯。

克里斯·奥'Brien说过...

@Yesh,

我想知道您的问题是否与各种Feature元素的允许范围有关。建议检查 范围元素 矩阵,以确保您没有做任何没有意义的事情。

HTH,

克里斯。

匿名 said...

克里斯,你好

感谢您的回复。我会研究这个问题,并让您知道。

-网格

匿名 said...

伟大的密室。尽管遇到一些困难,但我有一个问题。

我在服务器场级别创建了我的主食,并在Central Admin中安装了许多已部署到现有站点的双色球推荐一注。

我用钉书钉创建了一个新网站,以部署一系列双色球推荐一注,这些双色球推荐一注在网站集级别范围内。

这些双色球推荐一注已成功激活,但部署似乎没有发生。

这是我不了解的SharePoint的一个方面,但是由于双色球推荐一注已安装在其他网站上,因此它们会出现在每个网站的网站集双色球推荐一注列表中。

创建新站点后,即可激活它们。但是,由于尚未正式将其部署到新站点,因此安装了内容类型,因为该双色球推荐一注在12个配置单元中具有正确的文件,但是仅在部署订书钉时不会执行Web部件dll和安全控制标签。似乎正在做。

克里斯·奥'Brien说过...

保罗·麦克

很抱歉延迟您的评论。我不确定我 相当 遵循您的问题-您是说双色球推荐一注已被激活,但未提供其工件吗?

如果是这样,建议对照 范围内的要素元素 表格,以确保您为不同的事物使用了正确的范围。

HTH,

克里斯。

匿名 said...

克里斯,你好

我想这个问题的答案已经给出,只是还有些模糊,想再次摆姿势。从逻辑上讲,由于我具有网站集范围内的双色球推荐一注,因此可以预期,它将在创建新网站集时自动应用(激活)。似乎我在创建一个新站点(网络)时仍能得到它。是正常的行为。你可以吗详细说明。谢谢。

匿名 said...

你好

我在装订和网站模板(.stp)时遇到问题

如果您具有在站点上启用了列表级别的事件接收器(itemAdded等)的双色球推荐一注,则使用(将该站点另存为模板)将该站点另存为模板,然后根据该模板创建一个新站点,该事件接收者将在列表中注册两次...它们将使用不同的序列号但具有相同的事件名称进行注册。

就像是:

CustomItemAdded:序列:1000
CustomItemAdded:序列:1001

这确实很烦人,因为它使事件接收器触发两次,并且代码运行两次,这有时会导致错误。

这是一个已知的问题?

Madhusudhan说过...

克里斯,你好
我已经使用Visual Studio扩展程序在自定义创建的网站定义中创建了大约10个网站。
然后,在部署到生产之后,对现有站点进行了更改。
我在Visual Studio中对现有站点定义进行了更改,并生成了一个wsp文件,然后将其部署到生产环境中,这在旧站点中也适用。

然后,下次更改时再次出现,因此再次更改了站点定义并进行了部署。这次所有现有站点都已损坏,它们停止了工作。

Upoun进行了进一步调查,我发现有些时候只有网站崩溃了。

我的问题是,对我而言,一个难题是如何在不破坏旧站点的情况下更改站点定义?可能吗 ?

匿名 said...

我想更新博客站点中的某些文件(post.aspx,schema.xml),而不创建其他sote定义。
我可以使用装订双色球推荐一注覆盖默认文件,并且在停用博客站点时,文件应具有原始状态。
那有可能吗?

先谢谢了。

亚历克斯

克里斯·奥'Brien说过...

@dejawoo,

自从我使用双色球推荐一注装订以来已经有一段时间了,但是我不确定我是否会期望您看到的行为。尽管您的双色球推荐一注仅限于网站集,但您确定双色球推荐一注中的元素可以属于此范围吗?

HTH,

克里斯。

克里斯·奥'Brien说过...

@匿名,

有趣的发现-它 确实 听起来像个小虫,我打个电话,看看您是否从PSS中获得了快乐。

如果有兴趣,请听取结果。

克里斯。

克里斯·奥'Brien说过...

@madhusudhan,

简要地说,不支持对已在使用的网站定义进行更改(即,已经从中创建了网站)。

但是,双色球推荐一注装订方法可以在这种情况下为您提供帮助-这使您无需触摸原始站点定义文件即可添加双色球推荐一注(并因此执行代码)。

如果确实需要修改站点定义,则可以通过复制/命名原始站点定义,进行更新,然后通过删除* webtemp.xml隐藏原始版本来创建后续的“版本”。这意味着只能从新版本创建新站点,而现有站点继续运行不受影响。如果您希望这些现有站点也能反映所做的更改,则需要做一些工作来应用它们,通常这将涉及使用API​​。

HTH,

克里斯。

克里斯·奥'Brien说过...

@匿名,

我不会使用这种方法-不支持修改现成的网站定义文件,因此建议您根据标准副本创建自己的定义。

HTH,

克里斯。

匿名 said...

我可以看到,当我使用内置的网站定义(来自MOSS或WSS)时,最好使用特征装订,但是当我已经具有自定义网站定义时,为什么我会使用特征装订而不是修改网站定义?但是我这里有一个更重要的问题...如果我在创建网站后将文件添加到自定义网站定义中(我是指ASPX文件或图像或其他内容),该文件是我添加到网站定义中的...重新执行模块,以便将新文件添加到现有站点,否则我将被迫使用一项新双色球推荐一注,然后使用该双色球推荐一注目录中的文件而不是我的站点定义中的文件?

克里斯·奥'Brien说过...

@匿名,

有趣的观点,但对我来说,您实际上已经回答了自己的问题。之所以要在“双色球推荐一注”中开发双色球推荐一注,然后将其添加到“骨架”网站定义中,是因为您具有更大的灵活性-例如,如果以这种方式开发,则可以轻松地将新双色球推荐一注部署到现有网站(通过激活(针对这些网站的双色球推荐一注)和针对新网站的双色球推荐一注(通过将双色球推荐一注装订到网站定义中)。正如您所发现的,当您将所有双色球推荐一注直接添加到网站定义中时,就不适合处理现有网站。还请记住,创建网站后,不支持更改实际的网站定义文件。 Andrew Connell在他的文章中也谈到了这一点。您不需要创建站点定义,他提出的一个好处是,您还可以通过禁用双色球推荐一注来删除双色球推荐一注-这是所有双色球推荐一注中不可能实现的网站定义。

HTH,

克里斯。

匿名 said...

克里斯,你好

I have a feature stapler that works just properly in my development environment. When I move it to test, the "Stapler" stops working. I am using solution deployment to deploy both my feature and my feature stapler. I am stapling to the STS#0 and 全球#0 site defs.

任何见识将不胜感激。

阿农

克里斯·奥'Brien说过...

@Anon,

对不起,我对此没有任何具体想法。

祝好运,

克里斯。

卡梅伦说过...

我费了半天的时间才发现要装订的双色球推荐一注必须是网络范围

希望此评论对其他人有所帮助。