Czy można przekształcić następujący plik Web.config appSettings:
<appSettings>
<add key="developmentModeUserId" value="00297022" />
<add key="developmentMode" value="true" />
/* other settings here that should stay */
</appSettings>
w coś takiego:
<appSettings>
<add key="developmentMode" value="false" />
/* other settings here that should stay */
</appSettings>
Więc muszę usunąć klucz developmentModeUserId i muszę zastąpić wartość dla klucza developmentMode .
c#
asp.net
.net
web-config
ważka
źródło
źródło
xdt:Transform="SetAttributes" xdt:Locator="Match(key)"
część należy użyć w pliku Web.Whokolwiek.config, a nie w pliku Web.config.Zastępowanie wszystkich ustawień aplikacji
Jest to przypadek nadmiaru, w którym po prostu chcesz zastąpić całą sekcję pliku web.config. W takim przypadku zastąpię wszystkie ustawienia aplikacji w pliku web.config wprowadzę nowe ustawienia w pliku web.release.config. To jest moja podstawowa aplikacja web.config Ustawienia:
Teraz w moim pliku web.release.config zamierzam utworzyć sekcję appSettings, ale dołączę atrybut xdt: Transform = „Replace”, ponieważ chcę po prostu zastąpić cały element. Nie musiałem używać xdt: Locator, ponieważ nie ma nic do zlokalizowania - chcę po prostu wyczyścić tablicę i wymienić wszystko.
Zauważ, że w pliku web.release.config moja sekcja appSettings ma trzy klucze zamiast dwóch, a klucze nie są takie same. Teraz spójrzmy na wygenerowany plik web.config, co dzieje się, gdy publikujemy:
Tak jak się spodziewaliśmy - ustawienia web.config zostały całkowicie zastąpione wartościami w web.release config. To było łatwe!
źródło
Jeśli chcesz przekształcić ustawienia aplikacji z pliku konfiguracji sieci do pliku web.Release.config, musisz wykonać następujące kroki. Niech plik ustawień aplikacji web.config to:
Teraz jest web.Release.config do transformacji.
Spowoduje to przekształcenie wartości K1 na nową wartość w trybie rzeczywistym.
źródło
Nie lubię, aby transformacje zawierały więcej informacji niż było to konieczne. Zamiast przekształcać klucze, po prostu określam stan i intencję . O wiele łatwiej jest dostrzec zamiar, gdy robi się tak, przynajmniej IMO. Ponadto staram się umieścić wszystkie
xdt
atrybuty na pierwszym miejscu, aby wskazać czytelnikowi, że są to transformacje, a nie nowe rzeczy, które są definiowane.Na powyższym znacznie łatwiej jest zauważyć, że pierwszy usuwa element. Drugi to ustawianie atrybutów. Ustawi / zastąpi zdefiniowane tutaj atrybuty. W takim przypadku zostanie po prostu ustawione
value
nafalse
.źródło