2013-03-19 3 views
0

Хорошо, я пытаюсь написать приложение службы и конфигурации. VB/C++ 2010 У меня было много хитов в google, но они во многом кажутся устаревшими. То, что я до сих пор представляет собой проект с одним формальным приложением и сервисным приложением. Единственная форма приложение имеет файл «app.config» и я добавил раздел:один файл конфигурации одного конфигурационного файла

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings file="settings.config"> 
    </appSettings> 
</configuration> 

В решении я добавил файл «settings.config» и его содержание:

<?xml version="1.0" encoding="utf-8"?> 
<appSettings> 
    <add key="Setting1" value="This is Setting 1 from settings.config" /> 
    <add key="Setting2" value="This is Setting 2 from settings.config" /> 
    <add key="ConnectionString" value="ConnectString from settings.confg" /> 
</appSettings> 

Я добавил ссылку: C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ Profile \ Client \ System.Configuration.dll

библиотека как в приложениях форм, так и в приложение службы

В очень простой формы приложения я следующий код

Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load 

     Dim s As String = _ 
System.Configuration.ConfigurationManager.AppSettings("ConnectionString") 
     TextBox1.Text = s 
    End Sub 

Оно не работает! Теперь ясно, что я что-то упускаю. Вероятно, это очень просто. Но мое ограниченное понимание заключается в том, что это автоматически настраивается конфигурационными файлами, которые у меня есть? MS в своей обычной шуточной моде, похоже, дает только образцы на 2012 год и net 4.5 или выше. Мне нужно это для работы на сервере 2003 года (также), поэтому я ограничена сетью 4.0

Помогите пожалуйста.

ответ

1

Проблема заключается в том, что строка System.Configuration.ConfigurationManager.AppSettings("ConnectionString") ищет ключ ConnectionString в файле приложения app.config.

Тот факт, что вы указали, что ключ file в файле app.config не волшебным образом сообщает ConfigurationManager для загрузки настроек из другого файла. Если это то, что вы хотите, вам нужно будет прочитать настройку для ключа file, а затем вручную загрузить конфигурацию из этого файла.

Это не изменилось с ранних версий .Net, хотя я не уверен, почему вы столкнулись с примерами.

+0

Miky, положил ее на голову и в других вещах, будучи ржавый и не видя дерево для деревьев. Теперь я пойду так, просто получив синтаксис –

+0

Хорошо, путь (после долгих размахов) - это отдельный файл конфигурации с настраиваемым разделом и классом, который находится в папке данных приложений Windows. Папка определяется именем компании и именем приложения и доступна из общей DLL с наблюдателем файлов, чтобы обеспечить автоматическое обновление –

0

Добавить ссылку на существующую сборку в .Net section вашего Add Reference Popup

Но я предлагаю вам использовать connectionStrings section в вашем конфигурационном файле

<connectionStrings> 
<add name="myConnectionString" connectionString="server=localhost;database=myDb;uid=myUser;password=myPass;" /> 
</connectionStrings> 

string connStr = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString; 
Смежные вопросы