Управление версиями блока с TeamCity

Для забавы я вытолкал Список в отражатель, и это - получающийся C#:

public void ForEach(Action<T> action)
{
    if (action == null)
    {
        ThrowHelper.ThrowArgumentNullException(ExceptionArgument.match);
    }
    for (int i = 0; i < this._size; i++)
    {
        action(this._items[i]);
    }
}

Точно так же MoveNext в Перечислителе, который является тем, что используется foreach, является этим:

public bool MoveNext()
{
    if (this.version != this.list._version)
    {
        ThrowHelper.ThrowInvalidOperationException(ExceptionResource.InvalidOperation_EnumFailedVersion);
    }
    if (this.index < this.list._size)
    {
        this.current = this.list._items[this.index];
        this.index++;
        return true;
    }
    this.index = this.list._size + 1;
    this.current = default(T);
    return false;
}

Список. ForEach намного более обрезается вниз, чем MoveNext - намного меньше обработки - будет более вероятный JIT во что-то эффективное..

, Кроме того, foreach () выделит новый Перечислитель несмотря ни на что., GC является Вашим другом, но если Вы сделаете тот же foreach неоднократно, это сделает больше холостых объектов, в противоположность многократному использованию того же делегата - , НО - это - действительно случай края. В типичном использовании Вы будете видеть минимальное различие.

18
задан Tim Long 6 May 2011 в 09:05
поделиться

1 ответ

Мы используем CruiseControl.net и SVN. Мы едем в другую сторону. Мы используем задачу MSBuildCommunityTasks Version в сценарии MSBuild для увеличения номера версии для сборок CI и использования этого номера версии для маркировки исходного кода.

РЕДАКТИРОВАТЬ: Требуются дополнительные сведения о целях MSBuild ...
Мы используем отдельный сценарий, который предназначен для сборки CI и не используется для сборок разработчика. Мы пробовали использовать разные цели в файлах MSBuild, которые студия использует в качестве файлов проекта, но это стало головной болью и требовало ручного редактирования файлов, которые создавала студия.
создать фактический файл проекта. Скрипт MSBuild в режиме выпуска

  • AfterBuild: мы запускаем наши проекты модульного тестирования (в качестве защиты от создания тегов для неработающих сборок на следующих шагах), используем задачи SvnInfo и некоторые задачи RegexReplace для установки некоторых переменных с путями и именами тегов и используйте задачу SvnCopy для создания тега.


  • Password = "password"
    SourcePath = "@ (SvnTrunkPath)"
    DestinationPath = "@ (SvnTagsPath) / BUILD - $ (TargetAssembly) - $ (Major ). $ (Незначительный). $ (Сборка). $ (Редакция) " Message = "Пометка успешной сборки" />

    5
    ответ дан 21 October 2019 в 05:29
    поделиться
    Другие вопросы по тегам:

    Похожие вопросы: