Действительно ли стоит учиться использовать MSBuild?

Вы можете просто передать оба параметра, цикл и длительность, в метод mimsave / mimwrite.

imageio.mimsave(gif_name, fileList, loop=4, duration = 0.3)

В следующий раз, когда вы захотите проверить, какие параметры можно использовать для формата, совместимого с imageio, вы можете просто использовать imageio.help ( имя формата ).

imageio.help("gif")

GIF-PIL - Статический и анимированный GIF (Подушка)

A format for reading and writing static and animated GIF, based
on Pillow.

Images read with this format are always RGBA. Currently,
the alpha channel is ignored when saving RGB images with this
format.

Parameters for reading
----------------------
None

Parameters for saving
---------------------
loop : int
    The number of iterations. Default 0 (meaning loop indefinitely).
duration : {float, list}
    The duration (in seconds) of each frame. Either specify one value
    that is used for all frames, or one value for each frame.
    Note that in the GIF format the duration/delay is expressed in
    hundredths of a second, which limits the precision of the duration.
fps : float
    The number of frames per second. If duration is not given, the
    duration for each frame is set to 1/fps. Default 10.
palettesize : int
    The number of colors to quantize the image to. Is rounded to
    the nearest power of two. Default 256.
subrectangles : bool
    If True, will try and optimize the GIF by storing only the
    rectangular parts of each frame that change with respect to the
    previous. Default False.
21
задан ljs 6 September 2008 в 22:26
поделиться

9 ответов

MSBuild абсолютно стоит времени для изучения. После начальной кривой обучения (который мог бы быть очень крутым на самом деле) становится довольно легко сделать наиболее распространенные шаги автоматизации сборки.

  • блоки здания в режиме RELEASE
  • блоки подписания со строгим именем
  • рабочие модульные тесты
  • изменение xml файлы / Web.config-s на лету
  • изменение номера версии блоков
  • проверка FxCop / StyleCop и т.д.
  • автоматизированное развертывание - создают базы данных SQL, веб-сайты IIS, сервисы окон и т.д.
12
ответ дан 29 November 2019 в 06:56
поделиться

Это кажется, что Вы - единственный разработчик, работающий над Вашим собственным сайтом. Если это верно, это не необходимо вообще, но это - все еще хорошая идея для Вас учиться как часть Вашего профессионального опыта.

Автоматизированное здание проектов становится более необходимым как число разработчиков, работающих над увеличением проекта. Для двух разработчиков очень легко записать несовместимый код, который повредится, когда это будет объединено (предположите, что я называю функциональное нечто (интервал x), и Вы изменяете подпись, чтобы быть нечто (интервал x, интервал y): когда мы объединим наши кодовые базы, код повредится.

Эти типы ошибок увеличиваются в сложности и стычке с количеством времени между сборками интеграции. Путем установки ночью создает, или даже создает, которые происходят каждая регистрация, эти проблемы значительно уменьшаются. Эта практика является в значительной степени промышленным стандартом через проекты с несколькими разработчиками.

Поэтому теперь, для ответа на вопрос: это - навык, который охватит через проекты и компании. Необходимо изучить его, чтобы расширить знание и навыки как разработчик, и добавить важную строку на резюме.

7
ответ дан 29 November 2019 в 06:56
поделиться

Ну, MSBuild встроен, поэтому при выполнении чего-то простого, тогда да, это рекомендуется.

, Но для чего-то как ночные сборки, я предложил бы FinalBuilder.

Посмотрите этот вопрос на Инструментах Сборки/Управления конфигурацией.

5
ответ дан 29 November 2019 в 06:56
поделиться

MSBuild невероятно прост в использовании, можно использовать VS, чтобы управлять проектами и файлами решения и просто передать SLN MSBuild.

2
ответ дан 29 November 2019 в 06:56
поделиться

В сценарии такой, поскольку Ваш, где у Вас уже нет системы сборки, тогда да, MSBuild, абсолютно стоит того. Мало того, что можно использовать его для разнообразия предварительной сборки и постсоздать задачи (см. ответ Jicko Petiov), но можно также интегрировать его приятно в непрерывную среду интеграции (такую как CruiseControl).

Один сценарий, где это не могло бы стоить того, - когда Вы уже имеете, автоматизировал/писал сценарий систему сборки на месте. Например, я сам не не торопился с MSBuild, потому что я использовал NAnt для этой задачи прежде, чем MSBuild существовал...

2
ответ дан 29 November 2019 в 06:56
поделиться

Здание из командной строки с MSBuild относительно легко изучить. Запустите путем открытия Visual Studio Command Prompt и выполнения msbuild /?. Просто прочитайте справку однажды и затем решите позже, хотите ли Вы узнать больше детали.

Пишущие файлы проекта немного более сложно. Большинство людей не должно изучать его, потому что можно сделать большинство вещей в Visual Studio. Однако это также довольно мощно для определенных проблем.

я имею в прошлом используемом MSBuild как язык сценариев, объединенный с большим количеством пользовательских задач. MSBuild имеет фантастическую поддержку входа + встроенное управление зависимостью. Однако это не легкий язык для изучения. PowerShell является намного лучшим выбором.

1
ответ дан 29 November 2019 в 06:56
поделиться

@kronoz
я сказал бы ДА.
аккуратная вещь о MSBuild состоит в том, что при изменении csproj файлов для включения сделанных на заказ шагов тогда те шаги произойдут из VS или из MSBuild. Также, если у Вас когда-нибудь будет сервер сборки, то Вы не должны будете устанавливать полный VS, только SDK для разрабатывания проектов.

15
ответ дан 29 November 2019 в 06:56
поделиться

Наш Semantic Designs CloneDR - это инструмент, который обнаруживает блоки кода «копирование-вставка-редактирование» для многих языков: C, C++, Java, C++, COBOL, ECMAScript, PHP, VB6, VB.net,...

Он использует синтаксические анализаторы с точностью до языка для построения абстрактных синтаксических деревьев, соответствующих точным структурам программ, которые затем сравниваются для подобия. Это означает, что он не путается ни в одном пути с помощью пробела, форматирования, комментариев или даже другого «написания» литералов (например, 3,14159 совпадает с 0,00314150E3).

Создается отчет, который показывает точно , как блоки кода похожи и точно различаются. По ссылке можно просмотреть примеры отчетов.

-121--3653723-

IoC.Resolve < > является примером локатора служб образцов. Этот образец накладывает несколько ограничений на то, что инжекция конструктора не имеет:

  • Объекты не могут иметь более мелкозернистый контекст, чем домен приложения, из-за статических вызовов
  • Объекты решают , какие версии зависимостей разрешить. Все экземпляры определенного класса получат одинаковую конфигурацию зависимости.
  • Соблазн связать код с контейнером высок, например, вместо создания фабрики, раскрывающей намерения.
  • Для модульного тестирования требуется конфигурация контейнера, в которой классы могут быть просто созданы и использованы в противном случае. (Это особенно проблематично, когда требуется протестировать несколько конфигураций одного класса из-за второй проблемы выше.)
  • Структура приложения не может быть выведена из открытого API. (Параметры конструктора являются хорошей вещью. Они не являются проблемой, которую вы должны чувствовать необходимость в решении.)

Эти ограничения, на мой взгляд, переводят образец поиска услуг в золотую середину между большим шариком грязи и инъекцией зависимости: полезно, если вы должны использовать его, но далеко не лучший выбор.

-121--1143752-

MSBuild, безусловно, стоит узнать для всех, кто пишет программное обеспечение .NET. Причина, по которой сервер построения для приложений .NET больше не требует установки Visual Studio (как упомянул Эндрю Бернс), заключается в том, что MSBuild является частью платформы .NET Framework.

Знание MSBuild даст вам значительную гибкость в выборе технологий, которые вы используете для реализации непрерывной интеграции. Поскольку я потратил время на изучение MSBuild, я смог без особых затруднений изменить систему CI, которую использовала одна из наших команд, от CruiseControl.NET до StartCity. Эти серверы CI, или что-то вроде FinalBuilder (с которым я не знаком), лучше подходят для делать ночных построений, чем запланированная задача. Изучение способов реализации пользовательских задач MSBuild обеспечит еще большую гибкость при внедрении пользовательских построений. Дживко Петиков перечислил ряд задач, которые MSBuild делает проще. В случае развертывания и настройки базы данных я написал сценарии, которые делают это в MSBuild, что значительно упрощает процесс разработки и тестирования.

Если Visual Studio Team System будет в вашем будущем, приложения, построенные с использованием MSBuild, будут гораздо проще перемещать в эту среду, чем приложения, построенные с помощью альтернативных средств.

Существует множество ресурсов, которые помогут начать работу с MSBuild. Начну с Внутри Microsoft Build Engine . Один из соавторов также имеет кучу материалов в Интернете, включая этот сайт и проект на CodePlex .

7
ответ дан 29 November 2019 в 06:56
поделиться

@kronoz Я бы сказал ДА. Отличная особенность MSBuild заключается в том, что если вы измените свои файлы csproj, включив в них пользовательские шаги сборки, то эти шаги будут выполняться из VS или из {{ 1}} MSBuild. Кроме того, если у вас когда-либо будет сервер сборки , вам не нужно будет устанавливать полную VS, только SDK для сборки ваших проектов.

==> Это не совсем так. Например, для сборки проекта установки на сервере сборки потребуется установить Visual Studio !!

0
ответ дан 29 November 2019 в 06:56
поделиться
Другие вопросы по тегам:

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