小编Tho*_*man的帖子

CSPack使用%20的空间对目录名进行编码

我最近在Teamcity中设置了一个新的构建配置,以便为Azure创建一个云服务包.用msbuild构建项目后,我正在调用cspack.exe(Azure SDK 2.2)来创建包.

这是我正在使用的命令:

cspack.exe "ServiceDefinition.csdef" 
"/out:%Package.RelativePath%package.cspkg" 
"/role:MyWebRole;%teamcity.build.checkoutDir%\t\%build.number%;bin\MyProject.Web.dll" 
"/sites:MyWebRole;MyWebSite;%teamcity.build.checkoutDir%\t\%build.number%"
Run Code Online (Sandbox Code Playgroud)

这会创建一个看似正确的cspkg.我已将此包上传到Azure存储并执行了webrole的更新.但过了一段时间,它在执行启动任务时显示错误.之后是重新启动webrole的循环.

在搜索可能的原因时,我注意到我的approot中的一个目录在我的原始项目中包含一个空格,但是在编码为%20的包中.将目录名称更改为原始名称并再次更新webrole后,问题就消失了.

是否有人熟悉这个问题并且可以指出我正确的方向来解决这个问题?

msbuild azure cspack

8
推荐指数
1
解决办法
260
查看次数

在DateTime-range上使用ContentSearch-API查询Sitecore Lucene-index

目前我正在开发一个实施Sitecore 7.0 Update 2的项目

在我的数据模板中,我有一个名为Begin Date的字段和另一个End Date.这两个字段是使用"日期"类型(而不是日期时间)创建的.因此,当我编辑和创建项目时,它会显示一个日期选择器,并且我已经提交了一些带有虚拟内容的项目,以及上个月和当前月份的开始和结束日期.

我想要实现的是获得所选月份内的所有项目.我的方法包含一个月和一年的整数作为参数.这应该控制具有应该从Lucene sitecore_master_index获得的开始日期和结束日期的项目.Date-field的Sitecore原始值是ISO datetime-strings.

所以这是我试图从所选月份中获取所有项目的查询.

private void GetItems(int month, int year)
{
    using (
        IProviderSearchContext context =
                ContentSearchManager.
GetIndex("sitecore_master_index").CreateSearchContext())
    {
         List<EventSearchResultItem> allEvents =     context.GetQueryable<EventSearchResultItem>(new     CultureExecutionContext(Sitecore.Context.Language.CultureInfo))
         .Where(s =>
                s.TemplateId == this.EventTemplateID &&
                ((s.BeginDate.Month == month && s.BeginDate.Year == year) || (s.EndDate.Month == month && s.EndDate.Year == year))
                    )
        .ToList();
    }
}
Run Code Online (Sandbox Code Playgroud)

使用此Where语句,我希望返回事件模板的所有项目,其中应包含该月份内的日期.但它返回一个空的结果集.缺点是我无法调试Lamba表达式,所以不幸的是我不知道该范围的值.但不是第1年和第9999年之间的事情:)在IQueryable执行查询并返回一些内容之后,列表中的对象包含属性的正确DateTime.因此它将索引中的字段正确映射到属性.此外,如果我删除日期检查,只有TemplateID检查是Where子句,它返回结果.但即使比较BeginDate与DateTime.MinValue和DateTime.MaxValue也不会返回一些东西.

它使用我为此创建的POCO级EvenSearchResultItem.在这个类中,我已将字段映射到属性,并添加了TypeConverter以将其转换为DateTime.它至少应该......

public class EventSearchResultItem : SearchResultItem
{
    [TypeConverter(typeof(IndexFieldDateTimeValueConverter))]
    [IndexField("__begin_date")]
    public DateTime BeginDate { get; set; }

    [TypeConverter(typeof(IndexFieldDateTimeValueConverter))]
    [IndexField("__end_date")]
    public DateTime EndDate { get; …
Run Code Online (Sandbox Code Playgroud)

.net c# linq sitecore

3
推荐指数
1
解决办法
3797
查看次数

标签 统计

.net ×1

azure ×1

c# ×1

cspack ×1

linq ×1

msbuild ×1

sitecore ×1