我们有一个项目可以使用某个DLL的两个不同版本。我们需要在两个不同的环境中部署它。使用哪个版本的DLL应该取决于环境。
一个建议的解决方案是复制整个代码库,并根据这两个代码库创建章鱼部署配置。
我强烈反对这一点,但仍然无法解决问题。
我认为二进制重定向不起作用,因为我无法在配置中指定dll路径,当然,我不能将这两个文件放在同一目录中。
有什么想法吗?
答案 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");
}
我同意这是一个非常不寻常的问题,可能表明代码有异味。