2016-11-11 5 views
0

OctopusDeployを使用して配置するときに#{port}変数を置き換えようとしています。次のように私は私が直接私のApp.configファイルにそれを追加した場合、それを行うことができる午前:OctopusDeployでの変数置換

<services> 
    <service name="SampleService" behaviorConfiguration="ServiceBehaviour"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://localhost:#{port}/SampleService/" /> 
     </baseAddresses> 
    </host> 
    .. 
    </service> 

は、開発者が使用できるように、私は、25555を言って、ここで(デフォルトのポートを追加することができます方法はあります#{port}を常に置き換えずに)、この特定のポートを変更する必要があることをOctopusDeployに指定しますか? (マルチテナント展開を使用しています)

答えて

1

設定ファイルのXML変換機能をOctopus deployと併用することができます。

Octopus自体でこれらの変換を実行できます。コードをコンパイルすると、app.configの名前が[applicationName].exe.configに変更されます[applicationName].exe.release.configというファイルを作成してこれをパッケージに追加すると、通常はweb.configの変換で使用するのと同じスタイルの変換をそのファイルに使用できます。 Octopusに*.release.configというファイルがあると、展開プロセス中に変換が実行されます。

また、This blogには、app.configファイルのweb.configファイルの変換機能を使用できるように、プロジェクトを拡張する手順が含まれています。

これはいくつかの方法で実行できます。ハードコードされた値を "base" app.configにしてからOctopus Variableをapp.release.configに変換してください。コードをビルドしてパッケージ化するときは、 "リリース"設定を使用する限り、トランスフォームが起動し、ハードコードされた値がビルドに置き換えられ、パッケージに追加されます。

または、それ以外の方法で行うことができます。app.debug.configのハードコーディングされた値とapp.configのOctopus Variableがあります。開発者がデバッグビルドを実行すると、変数はdebug.configの値に置き換えられます。あなたが比較的容易にデフォルトを適用できることを意味

+0

ありがとう、私はapp.config自体とOctopusDeployの代替変数を使用して変換.. – Narayana

0

タコは、変数の置換(http://docs.octopusdeploy.com/display/OD/Variable+Substitution+Syntaxドキュメント)でifunlessをサポートしています。まず

、変数が存在する場合、それを使用します。第二に

#{if port}#{port}#{/if} 

、変数はデフォルトを使用し、存在しない場合:

#{unless port}25555#{/unless} 

だから、それらを互いに結合:

#{if port}#{port}#{/if}#{unless port}25555#{/unless}