每次我在Git中切換分支時,我必須在一個XML文件中更新一行,以便在本地看到我的圖像(從圖像服務器拉出)。我不想要一個永久的解決方案來更改文件(如gitignore),因爲該文件會不時發生變化。在web.config中修改一個元素
我想運行一個批處理,將簡單地改變這一行:
<add key="Images.RootUrl" value="//images.dev.foo.com:7000/" />
到
<add key="Images.RootUrl" value="//imagesperf.foo.com/" />
我想實現兩個方法之一我已經在這裏發現,但迄今爲止,他們逃避我,部分是因爲所有的報價。
- 創造了新的文件,但不改變行:
cd c:\Projects\Git\foo\Foo.Web.Store FINDSTR /I /V /B "Images.RootUrl" Web.config > config.new ECHO <add key="Images.RootUrl" value="//imagesperf.foo.com/" /> >> config.new REM DEL Web.config REM REN Web.new Web.config PAUSE
- 敢肯定我失去了情節約一半:
cd c:\Projects\Git\foo\Foo.Web.Store for %%f in (Web.config) do ( for /f "tokens=1* delims=:" %%g in ('type "%%f" ^| findstr /n /v "images.dev.foo.com:7000"') do ( if "%%hx"=="x" ( echo.>>"tempWeb.config" ) else ( for /f "tokens=1* delims==" %%i in ('echo.%%h') do ( if "%%i"=="images.dev.foo.com:7000" ( echo.%%i=%%jimagesperf.foo.com>>"tempWeb.config" ) else ( if "%%jx"=="x" ( echo.%%i>>"tempWeb.config" ) else ( echo.%%i=%%j>>"tempWeb.config" ) ) ) ) ) ) REM ren Web.config oldWeb.config REM ren tempWeb.config Web.config
轉義爲什麼不使用的處理是這樣的一個簡單的微創治療方法。因爲這是iis/asp.net爲什麼不使用內置的功能爲不同的環境配置不同的配置? HTTP://計算器。com/questions/305447/using-different-web-config-in-development-and-production-environment –
如果一個值發生變化,我會在不知情的情況下進行修改,它會通過裂縫漏掉,而不會在我的開發配置中結束。 – DaveC426913
轉換是部分的。您不需要爲每個環境重新生成整個文件。 –