/ / Zmień ustawienia konfiguracyjne na podstawie stałych kompilatorów - c #, debugowanie, web-config, app-config

Zmień ustawienia konfiguracyjne na podstawie stałych kompilatora - c #, debugowania, konfiguracji sieci, app-config

W kodzie wiem, aby uwzględnić lub wykluczyć niektóre sekcje kodu w oparciu o aktualnie aktywną konfigurację kompilacji odzwierciedloną przez stałe kompilatora, takie jak DEBUG:

static void Main()
{
#if DEBUG

//While debugging this section is used.

#else

//In Release this section is used. This is the "normal" way.

#endif
}

Teraz chcę zrobić to samo w pliku konfiguracyjnym, takim jak web.config lub app.config, coś takiego:

<appSettings>
<!-- IF DEBUG -->
<add key="foo" value="debug-setting" />
<!-- ELSE -->
<add key="foo" value="release-setting" />
<!-- ENDIF -->
</appSettings>

Jak mogę to zrobić?

Odpowiedzi:

0 dla odpowiedzi № 1

Nie można tego zrobić, konfiguracje nie zapewniają tej dokładnej funkcjonalności.

To, czego możesz użyć, to transformacja konfiguracji. Używając tego, definiujesz opcjonalną transformację na konfigurację kompilacji, gdzie możesz zrobić coś takiego:

App.config:

<appSettings>
<add key="foo" value="debug-setting" />
</appSettings>

App.Release.config:

<appSettings>
<add key="foo" value="release-setting" xdt:Transform="Replace" xdt:Locator="Match(key)" />
</appSettings>

Zobacz też App.Config Transformation dla projektów, które nie są projektami WWW w Visual Studio 2010?.