У меня есть приложение .NET Framework 4 WinForm, использующее VisualStudio 2019. Это файл app.config с этими настройками
<connectionStrings>
<add name="MyWinApp.Properties.Settings.DBConnectionString"
connectionString="Data Source=MyServer;Initial Catalog=MyDb;Integrated Security=True;"
providerName="System.Data.SqlClient" />
</connectionStrings>
<applicationSettings>
<MyWinApp.Properties.Settings>
<setting name="DefaultName" serializeAs="String">
<value>Multi</value>
</setting>
</MyWinApp.Properties.Settings>
</applicationSettings>
Те же настройки и значения, скопированные в файл MyWinApp.exe.config внутри DEBUG и RELEASEПапки. Проблема в том, что даже если я удаляю разделы «ConnectionString» и «ApplicationSettings» из конфигурационного файла (пробовал отладку / освобождение обеих папок) и запускаю приложение, дважды щелкнув файл MyWinApp.exe, приложение все равно запускается и получает значения для этих свойствдаже они теперь ушли из файла конфигурации. Затем я запустил приложение, удалив файл конфигурации, и приложение все еще получало эти значения, вместо того, чтобы выдавать исключение.
Я открыл EXE-файл в TextPad и обнаружил, что эти значения сохранены в EXE-файле. Таким образом, приложение не выдает ошибку. Если приложение сохраняет информацию о настройках внутри EXE, зачем беспокоиться о конфигурационном файле во время выполнения.
//Check for database connection in property exists
String dbConnection;
try
{
dbConnection = Properties.Settings.Default.DBConnectionString;
}
catch (Exception ex)
{
Success = false;
}
Я никогда не получаю исключение для вышеприведенного фрагмента кода, который запускается при запуске.
Я видел ошибку при получении, если свойство / настройка не находятся в файле конфигурациираньше, это что-то новое в Visualt Studio 2019?