2015-09-01 11 views
11

Abbiamo un progetto che può utilizzare due versioni diverse della determinata DLL. Abbiamo bisogno di questo distribuito in due ambienti diversi. Quale versione della DLL viene utilizzata dovrebbe dipendere dall'ambiente.Come utilizzare il polipo per distribuire diverse versioni dell'assieme dipendente in diversi ambienti

Una soluzione suggerita è copiare l'intero code-base e creare configurazioni di distribuzione di polpo basate su queste due basi di codice.

Sono fortemente contrario, ma non ho ancora la soluzione al problema.

Penso che il reindirizzamento binario non funzionerà perché non posso specificare il percorso dll nella configurazione e, ovviamente, non posso avere quei due file nella stessa directory.

Qualche idea?

+1

Cosa stai cercando di ottenere distribuendo versioni diverse a seconda dell'ambiente? Generalmente Octopus distribuisce gli stessi file in ogni ambiente, quindi potrebbe essere meglio adottare un approccio diverso. – tspauld

+0

Penso che quello che stai cercando di fare sia possibile, ma * non * consigliabile. Per quanto mi riguarda, anch'io sarei contrario a questo, ma non capisco appieno il motivo per cui due diverse versioni di una DLL dovrebbero essere distribuite - sembra contro-intuitiva. Puoi spiegare la tua situazione un po 'di più? – osij2is

+0

Abbiamo l'agente di trasporto di MS Exchange. Codebase può e resterà lo stesso, l'unica differenza è nelle dll MS di riferimento per la versione 2013 e 2016. A seconda dell'ambiente (2013 e 2016) vorremmo fare riferimento a dll differenti. Le DLL sono identiche, la versione è diversa. –

risposta

2

Potrebbe essere facilmente risolto da script PowerShell, come un passo di distribuzione Octopus. Ad esempio, il progetto potrebbe avere due file:

YourFile.dll 
YourFile.v2.dll 

Poi lo script PowerShell post-step, (pseudo) avrà un aspetto simile:

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

Sono d'accordo, tuttavia, che questo è un problema abbastanza inusuale e potrebbe indicare odore di codice.

Problemi correlati