O__o 這...發生了什麼事?
趕緊回頭查程式碼,哪裡會產生例外錯誤我來攔一下,不過~找不太到 XD
後來請探子再送來這支程式的 .config 之後,終於知道問題在哪了。
以下亂寫一個模擬用的小小主控台應用程式(Console Application)
App.config /
<?xml version="1.0"?> <configuration> <appSettings> <add key="thisIs543" value="枸細殺"/> </appSettings> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup> </configuration>CS /
string value = ConfigurationManager.AppSettings["thisIs543"]; Console.WriteLine("using '{0}' do something...", value); Console.WriteLine("I will close after 15 sec."); System.Threading.Thread.Sleep(15000);執行結果 /
再來,模擬探子送來的 .config 內容
App.config /
<?xml version="1.0"?> <configuration> <appSettings> <add key="thisIs543" value="枸細殺"/> </appSettings> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup> </configuration>執行結果 /
真~壞了!
哪裡不一樣?請再看看兩個 App.config 內容,一個9行字,一個10行字。
結果就是後來多那第一行空行造成的。但,造成什麼錯誤呢?再改一下程式
CS /
string value = ""; try { value = ConfigurationManager.AppSettings["thisIs543"]; } catch (Exception ex) { Console.WriteLine(ex.ToString()); }執行結果 /
其實透過 Visual Studio 執行的話,會提早出現相同的錯誤訊息(所以撰寫程式的人應該不曾發生過這樣的問題)
最後,對應主題的答案就是,把空格加在 .config 內容中 <?xml 的前面即可^^
App.config /
<?xml version="1.0"?> <configuration> <appSettings> <add key="thisIs543" value="枸細殺"/> </appSettings> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> </startup> </configuration>
我之前也有遇過這問題
回覆刪除我的記法是把
當成 META DATA 。
沒事還是不要亂動他,科科
這次有讓我嚇一跳,希望下次我還記得這狀況
回覆刪除