Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多语言Sitecore环境中的Sitecore单语言发布_C#_Asp.net Mvc_Sitecore_Sitecore6_Sitecore Mvc - Fatal编程技术网

C# 多语言Sitecore环境中的Sitecore单语言发布

C# 多语言Sitecore环境中的Sitecore单语言发布,c#,asp.net-mvc,sitecore,sitecore6,sitecore-mvc,C#,Asp.net Mvc,Sitecore,Sitecore6,Sitecore Mvc,是否有任何方法可以在sitecore中发布某些特定语言的项目,这些语言是我们从与项目关联的API获得的 Language[] languages = new Language[] { LanguageManager.GetLanguage("en") }; .... ... Sitecore.Publishing.PublishManager.PublishSmart(master, targetDbs, languages); 我在Sitecore Env中有三种语言,但我希望其中一种语言仅

是否有任何方法可以在sitecore中发布某些特定语言的项目,这些语言是我们从与项目关联的API获得的

Language[] languages = new Language[] { LanguageManager.GetLanguage("en") };
....
...
Sitecore.Publishing.PublishManager.PublishSmart(master, targetDbs, languages);

我在Sitecore Env中有三种语言,但我希望其中一种语言仅用于“en”语言,另一种语言仅用于“en ca”,另一种语言仅用于“fr ca”。

您需要使用
PublishItem
方法,并按照以下步骤进行操作:

  • 获取需要发布的项目
  • 获取每个项目的语言版本,以了解项目需要以哪种语言发布
  • 示例代码

    //Get your Item list here
    var itemList = GetItemList();
    
    //Loop in the Item list to get the languages
    //Publish the item based on the languages
    foreach (var item in itemList)
    {
        var languageVersions = item.Languages;
    
        Sitecore.Publishing.PublishManager.PublishItem(item, targetDb, languageVersions, true, false);
    }
    

    谢谢

    对不同的项目单独使用PublishItem。@安东,谢谢你的回复,我的意思是,如果您需要以一种语言发布某些项目,而以其他语言发布其他项目,并且您知道哪些项目应以何种语言发布,那么您可以使用Sitecore.Publishing.PublishManager.PublishItem而不是PublishSmartThank@Hishaam,我能够做到这一点,并且它起到了作用,但我用一种语言发表的文章也用另一种语言展示。diff是指当我试图用非出版语言打开产品时,它会将我重定向到其主页,并使用出版语言,效果很好。产品应仅显示在发布的语言页面上。目标数据库中是否也有其他版本?是,目标数据库中存在所有版本。在内容编辑器中,我可以看到发布项目的正确版本。但在网站上,它以所有语言打开。如果项目的所有版本都已发布到目标数据库,它将在live Site上打开问题是因为环境本身存在安装问题。代码很好。谢谢