2016-06-08 5 views
1

Я новичок до TeamCity и Octopus Deploy.Очистка папки Asp.net Bin перед развертыванием кода с использованием TeamCity

В моем проекте много ветвей, которые используют разные версии DLL сторонних разработчиков. Проблема, с которой я сталкиваюсь, - это когда я переключаю ветви в TeamCity и создаю код, который он развертывает (используя Octopus Deploy), код успешно, но он не очищает целевую папку.

Как и в папке Bin, все DLL, необходимые для проекта, поэтому, когда я переключаю ветви и строю с использованием TeamCity и развертывается с использованием Octopus Deploy, предыдущая dll не удаляется, а приложение показывает следующую ошибку из-за существования одного и того же класса в нескольких DLLs

вызов неоднозначен между следующими методами или свойствами

Как я могу решить эту проблему?

ответ

2

Существует несколько способов сделать это. Это действительно зависит от того, как вы управляете версиями и развертываете свой код от TeamCity до Octopus. Если вы используете NuGet pacakges и предоставляете версию для каждого пакета, то после того, как Octopus запускает развертывание на основе новой версии пакета, у вас будет новый каталог для каждого развертывания, и у вас не будет этой проблемы вообще. Это, как говорится, вот несколько способов исправить это в вашем текущем рабочем процессе.

  1. Используйте сценарий Powershell в качестве первого шага в развертывании, и этот скрипт очистит каталог развертывания.
  2. Используйте «Пользовательский каталог установки» и установите флаг «Очистить этот каталог перед установкой».

Чтобы включить «каталог выборочной установки» нажмите на кнопку «Включить функции» на нижней части шага развертывания и проверить «Пользовательский каталог установки» Enable Features Screenshot

Затем нужно настроить путь к каталогу и проверить параметр «Очистить этот каталог перед установкой». enter image description here