我正在使用SDL Tridion 2011 SP1.我有组件A,B和C.组件C与A和B链接.
如果我发布C,则组件A和B都将发布.但我只希望发布组件A.
任何人都可以解释如何从发布中排除组件B吗?
Dav*_*ker 10
您遇到的是Tridion的默认行为.这是设计用于确保在更改组件中的内容时,发布它将更新网站上该内容的所有实例.
正如其他答案所示,您可以使用自定义解析器更改此行为:
using Tridion.ContentManager;
using Tridion.ContentManager.CommunicationManagement;
using Tridion.ContentManager.ContentManagement;
using Tridion.ContentManager.Publishing;
using Tridion.ContentManager.Publishing.Resolving;
public class UpdateResolvedItems : IResolver
{
public void Resolve(
IdentifiableObject item,
ResolveInstruction instruction,
PublishContext context,
Tridion.Collections.ISet<ResolvedItem> resolvedItems)
{
foreach (ResolvedItem resolvedItem in resolvedItems)
{
// Check resolved items, and remove accordingly
}
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码示例演示了您可以访问名为resolvedItems的集合.除非您对其进行更改,否则这是要发布的项目列表.
您可以遍历此列表并根据您的要求删除项目.
小智 8
到目前为止,我知道没有简单的方法可以做到这一点.当您发布一个项目时,Tridion会解析所有相关和链接的项目并发布它们.
您可以使用事件系统或自定义解析器来实现您想要的问题.此链接可能有所帮助:http: //nunolinhares.blogspot.com/2011/10/tridion-publisher-and-custom-resolvers.html
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |