簡體   English   中英

如何在XML配置文件中指定Octopus內置變量名?

[英]How to specify Octopus built-in variable names in an XML configuration file?

我們正在測試Octopus Deploy,因此我們制作了一個示例web.config文件,我們在不同的環境中安裝和轉換。 web.config轉換和使用自定義變量工作正常,但我無法獲得內置的Octopus變量來替換。 以下是web.config中XML部分的示例:

  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
    <add key="environmentTransform" value="" />
    <add key="EnvironmentVariable1" value="$OctopusEnvironmentName" />
    <add key="EnvironmentVariable2" value="$(OctopusEnvironmentName)" />
    <add key="EnvironmentVariable3" value="$(Octopus.Environment.Name)" />
    <add key="EnvironmentVariable4" value="$Octopus.Environment.Name)" />
    <add key="EnvironmentVariable5" value="$OctopusParameters[&quot;Octopus.Environment.Name&quot;]" />
    <add key="MachineVariable1" value="$Octopus.Machine.Name" />
    <add key="MachineVariable2" value="#(Octopus.Machine.Name)" />
    <add key="MachineVariable3" value="#OctopusMachineName" />
    <add key="CustomVariable" value="CustomVariable" />
  </appSettings>

這里的web.Dev.config,以環境命名:

  <appSettings>
    <add key="environmentTransform" value="Dev" xdt:Transform="SetAttributes" xdt:Locator="Match(key)"/>
  </appSettings>

這是結果:

  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
    <add key="environmentTransform" value="Dev" />
    <add key="EnvironmentVariable1" value="$OctopusEnvironmentName" />
    <add key="EnvironmentVariable2" value="$(OctopusEnvironmentName)" />
    <add key="EnvironmentVariable3" value="$(Octopus.Environment.Name)" />
    <add key="EnvironmentVariable4" value="$Octopus.Environment.Name)" />
    <add key="EnvironmentVariable5" value="$OctopusParameters[&quot;Octopus.Environment.Name&quot;]" />
    <add key="MachineVariable1" value="$Octopus.Machine.Name" />
    <add key="MachineVariable2" value="#(Octopus.Machine.Name)" />
    <add key="MachineVariable3" value="#OctopusMachineName" />
    <add key="CustomVariable" value="Value for maeaint01" />
  </appSettings>

如您所見,八達通變量未被替換。 知道為什么嗎?

Octopus的配置文件變量替換僅適用於設置key ,而不適用於值。 如果您創建如下設置:

<add key="Octopus.Environment.Name" value="..." />

那么該value將在部署時設置。

你正在嘗試使用其他方法當然是合理的,但不是Octopus目前如何使用配置文件。

我們使用新的解析器和新功能( #{if ...#{each and so-on)增強了我們在2.0中的變量替換處理 - 你的問題激勵我起草這個可能更好地解決這個問題的提議

我發現我的.config文件不會內置變量自定義變量。

您可以做的是在名為EnvironmentVariable1的章魚儀表板中設置變量並將其值設置為

#{OctopusEnvironmentName}

然后,這會將配置中的EnvironmentVariable1節點轉換為您當前正在部署的環境名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM