如何章鱼在不同的环境中部署不同版本的依赖程序集

时间:2015-09-01 11:12:47

标签: octopus-deploy

我们有一个项目可以使用某个DLL的两个不同版本。我们需要在两个不同的环境中部署它。使用哪个版本的DLL应该取决于环境。

一个建议的解决方案是复制整个代码库,并根据这两个代码库创建章鱼部署配置。

我强烈反对这一点,但仍然无法解决问题。

我认为二进制重定向不起作用,因为我无法在配置中指定dll路径,当然,我不能将这两个文件放在同一目录中。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

作为Octopus部署步骤,PowerShell脚本可以很容易地解决这个问题。例如,您的项目可能有两个文件:

YourFile.dll
YourFile.v2.dll

然后你的powershell脚本,后步骤,(伪代码)将看起来类似:

if($OctopusParameters["environment"] == "Dev") {
   File.Delete("YourFile.dll");
   File.Rename("YourFile.v2.dll", "YourFile.dll");
}

我同意这是一个非常不寻常的问题,可能表明代码有异味。