Как перейти на автоматизированные сборки с Visual Studio?

Существует много предложений здесь, так простите мне, если это было уже отправлено.

первая вещь, которую я сделал бы, делают упорядочивание двух процессов шага. Первый шаг пасовал бы назад GUID при входе IP-адреса. Второй шаг получил бы GUID и сравнил бы его с IP-адресами, которые были зарегистрированы. В сочетании с блокированием IP-адресов, которые массово рассылают сайт (IE: быстрее, чем человек может нажать обновление), эта техника могла остановить спаммеров от успешного создания покупок, таким образом, решив 1 & 3.

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

9
задан Pete Morgan 21 August 2009 в 21:41
поделиться

6 ответов

Спасибо всем за ваши ответы, но, проведя небольшое исследование, я нашел несколько идей, как сделать это немного по-другому:

  • , чтобы расширить процесс сборки за пределы ограничений .sln &. Это старое сообщение в блоге Скотта Хансельмана о кодовой организации . Здесь он использует Nant вместо MSBuild, но основная концепция заключается в том, чтобы выполнить любой проект nant / msbuild, который вы хотите, с помощью командного файла .bat.

    «В этом каталоге ресурсов у нас есть такие вещи, как build.bat и buildpatch.bat . Цель состоит в том, чтобы люди могли получить материал из системы управления версиями и набрать BUILD и быть где-нибудь полезным. ОЧЕНЬ комфортно иметь возможность надежно и просто построить всю систему ».

    Из этого я вижу, что он (очевидно) по-прежнему использует .sln и .csproj для хранения своих файлов для VS - и может строить через VS, если необходимо, - но фактически делает свою сборку через файлы Nant .build, выполняемые через .bat.

    В этом посте (также от Скотта Хансельмана) показано, как выполнять внешние инструменты (такие как MSBuild или файл .bat) из Visual Studio. Итак, я создал файл build.bat, который выглядит так:

    @echo off
    echo Building %1 solution from build.bat
    echo Directory: %~p1
    C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe %~f1 %2
    

    (я получил модификаторы параметров фанки ~ p и ~ f из здесь ;% ~ f1 расширяет MySolution.sln до полностью квалифицированного путь к sln); -)

    Затем я настроил диалоговое окно Visual Studio «Внешние инструменты» так, чтобы: - команда "build.bat" - аргументы: «$ (SolutionFileName) / v: m» - начальный каталог - "& (SolutionDir)"

    И затем я добавил кнопку на панель инструментов для его выполнения. Я могу пойти дальше и сопоставить клавишу F5 для запуска этой сборки, а не стандартную сборку Visual Studio.

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

    Я собираюсь попробовать и посмотреть, чего я могу достичь только на MSBuild, а затем попробуйте подключиться к Hudson и посмотреть, что готовит! : -)

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

    Хороший, Пит.

1
ответ дан 4 December 2019 в 14:29
поделиться

Мы используем msbuild для автоматизированных сборок, и вы можете просто указать msbuild на свой файл решения без каких-либо изменений.

Также, чтобы уточнить, мы также используем сервер автоматической сборки (Hudson с. Net), который использует msbuild для автоматизации процесса.

6
ответ дан 4 December 2019 в 14:29
поделиться

Скорее вам следует взглянуть на CruiseControl.NET чем развертывание собственной автоматизированной сборки и процесса CI. Он делает подобное намного проще и может делать дополнительные вещи, такие как запуск до тестирования или инструменты покрытия кода, или что-то еще как часть процесса сборки.

2
ответ дан 4 December 2019 в 14:29
поделиться

Чем отличается опыт разработки Visual Studio?

Обычно ничего. Фактически, если вы все делаете правильно, это должно быть прозрачно; ваша IDE не должна заботиться о том, какой менеджер сборки вы используете. Вот почему такие решения, как CruiseControl.NET и Hudson, хороши.

Если мы создаем наши собственные файлы MSBuild .proj, означает ли это, что у нас больше нет файлов .csproj? Как проекты теперь выглядят в VS?

Структура вашего решения осталась прежней. В Visual Studio решения и проекты выполняют двойную функцию как руководство по организации проекта / упаковке и как удобство IDE. Ваш менеджер сборки проанализирует это, чтобы понять, что необходимо построить.

2
ответ дан 4 December 2019 в 14:29
поделиться

Доступно несколько хороших инструментов автоматической и непрерывной сборки, основанных на MSBuild. Ваши файлы проекта C # уже ЯВЛЯЮТСЯ файлами MSBuild - так что на самом деле, начиная с VS2005, вы использовали MSBuild на своей локальной рабочей станции для создания своей сборки - вы просто могли не знать об этом: -)

Помимо CruiseControl.NET (упомянутого JP), на который определенно стоит обратить внимание, я бы также порекомендовал еще два продукта:

  • FinalBuilder Server , который кажется почти неизвестным подавляющему большинству разработчиков (но определенно заслуживает большего внимания! Отличный инструмент). У них также есть автономная настольная версия FinalBuilder , если она вам может понадобиться. Это не бесплатно, но за 100 долларов за одного пользователя (и 450 долларов за 5) это ' на самом деле небольшие расходы

  • TeamCity от JetBrains - также хорошо известного своим продуктом Resharper в мире .NET - который предлагает бесплатную версию Pro для команд до 20 пользователей / планов сборки и гораздо более дорогую Корпоративная версия, если вы выросли :-)

По сравнению с CruiseControl.NET, оба предлагают приятный дружественный графический интерфейс для настройки ваших сборок, а также для их мониторинга.

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

Вы действительно не ошибетесь с непрерывной интеграцией! Я больше не мог без немедленных отзывов о сборке ......

Marc

и гораздо более дорогая версия Enterprise, если вы выросли :-)

По сравнению с CruiseControl.NET, оба предлагают приятный дружественный графический интерфейс для настройки ваших сборок и их мониторинга.

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

Вы действительно не ошибетесь с непрерывной интеграцией! Я больше не мог без немедленных отзывов о сборке ......

Marc

и гораздо более дорогая версия Enterprise, если вы выросли :-)

По сравнению с CruiseControl.NET, оба предлагают приятный, дружественный графический интерфейс для настройки ваших сборок, а также для их мониторинга.

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

Вы действительно не ошибетесь с непрерывной интеграцией! Я больше не мог без немедленных отзывов о сборке ......

Marc

не ошибетесь с непрерывной интеграцией! Я больше не мог без немедленных отзывов о сборке ......

Marc

не ошибетесь с непрерывной интеграцией! Я больше не мог без немедленных отзывов о сборке ......

Marc

2
ответ дан 4 December 2019 в 14:29
поделиться

Мы используем TeamCity на работе; мы начали с CruiseControl.NET, но переключились, когда другой разработчик указал мне, что в противном случае я буду поддерживать сборку cc навсегда. ;) Серьезно, TeamCity очень легко изучить и использовать.

Я задавал похожие вопросы, когда впервые услышал о непрерывной интеграции. Приходится ли вам вручную переписывать (и поддерживать) все решения и проекты? Вам нужно изучить команды MSBuild? Короткий ответ - нет.

Как упоминал г-н Харви, вы можете просто вызвать MSBuild для созданного VS решения или файла проекта, и он построит его для вас. TeamCity сделает это автоматически.

Если вам нужна большая гибкость, я бы рекомендовал NAnt . Я работал над написанием сценариев MSBuild вручную, и это разочарование. NAnt имеет более чистый синтаксис и (для меня) проще в использовании и чтении. Мы используем NAnt для причудливых вещей и (опять же) вызываем MSBuild из NAnt, когда хотим создать проект или решение. TeamCity поддерживает NAnt.

Подводя итог, для нас в Visual Studio ничего не изменилось. Мы по-прежнему создаем и поддерживаем наши проекты и решения таким же образом. Когда мы проверяем их в системе контроля версий (TFS), TeamCity автоматически выбирает их, создает решения и запускает наши (NUnit) тесты. У нас также есть настройки развертывания одним щелчком мыши (в TeamCity с использованием NAnt).

Когда мы проверяем их в системе контроля версий (TFS), TeamCity автоматически выбирает их, создает решения и запускает наши (NUnit) тесты. У нас также есть настройки развертывания одним щелчком мыши (в TeamCity с использованием NAnt).

Когда мы проверяем их в системе контроля версий (TFS), TeamCity автоматически выбирает их, создает решения и запускает наши (NUnit) тесты. У нас также есть настройки развертывания одним щелчком мыши (в TeamCity с использованием NAnt).

1
ответ дан 4 December 2019 в 14:29
поделиться
Другие вопросы по тегам:

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