我使用app.config來存儲一些信息。我的文件是這樣的:嘗試在app.config中寫入時出現NullReferenceException
<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="używajDomyślnie" value="false" />
<add key="sInicjały" value="ŁM" />
<add key="nPrzedstawiciel" value="Łukasz Motyczka" />
<add key="nPozycja" value="Przedstawiciel Naukowo-Handlowy" />
<add key="nTelefon" value="+48 784 567 670" />
<add key="nEmail" value="[email protected]" />
<add key="dataoferty" value="" />
<add key="ostatniNrOferty" value="" />
</appSettings>
<connectionStrings>
<add name="Oferty_BMGRP.Properties.Settings.BazaDanychConnectionString" connectionString="Data Source=|DataDirectory|\BazaDanych.sdf" providerName="Microsoft.SqlServerCe.Client.3.5" />
</connectionStrings>
<system.windows.forms jitDebugging = "true"/>
</configuration>
拋出一個NullexceptionError是該片段:
if(checkBox1.CheckState == CheckState.Checked)
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
AppSettingsSection app = config.AppSettings;
//app.Settings.Clear();
//app.Settings.Add("używajDomyślnie", "true");
//app.Settings.Add("sInicjały", sInicjaly.ToString());
//app.Settings.Add("nPrzedstawiciel", nPrzedstawiciel.ToString());
//app.Settings.Add("nPozycja", nPozycja.ToString());
//app.Settings.Add("nTelefon", nTelefon.ToString());
//app.Settings.Add("nEmail", nEmail.ToString());
config.AppSettings.Settings["używajDomyślnie"].Value = "true"; //<- THIS LINE GIVES ME AN ERROR
config.AppSettings.Settings["sInicjały"].Value = sInicjaly.ToString();
config.AppSettings.Settings["nPrzedstawiciel"].Value = nPrzedstawiciel.ToString();
config.AppSettings.Settings["nPozycja"].Value = nPozycja.ToString();
config.AppSettings.Settings["nTelefon"].Value = nTelefon.ToString();
config.AppSettings.Settings["nEmail"].Value = nEmail.ToString();
config.Save(ConfigurationSaveMode.Modified);
form1.checkBox1.CheckState = CheckState.Checked;
}
當我調試它或建立VS釋放它工作正常。它也適用於我的筆記本電腦。但在其他機器上,我有空異常錯誤。也一直工作,直到我試圖做一個安裝項目(這工作,但喜歡這一個)。 jit調試不起作用,我仍然有一個.net錯誤(繼續或退出)。
而且我也注意到,我的電腦,我用一些其他的筆記本電腦,在發生錯誤時它顯示:
System.NullReferenceException: Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.
w Oferty_BMGRP.Form3.button1_Click(Object sender, EventArgs e) w C:\Users\user\Documents\Visual Studio 2010\Projects\BMGRP\Oferty BMGRP\OfertyBMGRP\Form3.cs:wiersz 282
對不起,波蘭語,但我想指出的是,在兩臺機器上就說明路徑到相同的文件夾,它只存在於其中一個文件夾中。
請幫忙:)
編輯!
我剛剛發現,如果我構建版本。運行應用程序並運行上述代碼,它會創建MyApplication.exe.config文件,然後應用程序在每臺計算機上都能正常工作。我怎樣才能使它作爲安裝項目工作,其中.exe.config沒有創建,只有app.config?
嘗試'config.AppSettings.Add'而不是可能?在你甚至有機會設置一個值之前,索引器('Settings [「blah」]')在這裏返回null。 –
我討厭回答如此明顯......是的,它通過這種方式創建.exe.config文件。 :0必須重做我的代碼,因爲這樣它會添加這些行,每次應用程序運行到結束......謝謝 –
@JohnGibb請張貼它作爲答案,所以我將能夠接受它:) –