Как осьминог развертывает различные версии зависимой сборки в разных средах
У нас есть проект, который может использовать две разные версии определенной DLL. Нам нужно, чтобы это было развернуто в двух разных средах. Какая версия DLL используется, должна зависеть от среды.
Одним из предлагаемых решений является копирование всей базы кода и создание конфигураций развертывания осьминогов на основе этих двух кодовых оснований.
Я категорически против этого, но до сих пор не имею решения проблемы.
Я думаю, что двоичное перенаправление не будет работать, потому что я не могу указать путь к dll в конфиге, и, конечно, я не могу иметь эти два файла в одном каталоге.
Любые идеи?
Ответы
Ответ 1
Это легко решить с помощью powershell script, как шаг развертывания Octopus. Например, ваш проект может иметь два файла:
YourFile.dll
YourFile.v2.dll
Тогда ваша powershell script, post-step, (псевдокод) будет выглядеть примерно так:
if($OctopusParameters["environment"] == "Dev") {
File.Delete("YourFile.dll");
File.Rename("YourFile.v2.dll", "YourFile.dll");
}
Я согласен с тем, что это довольно необычная проблема, и может указывать на запах кода.