У меня есть следующие проекты:
Все эти приложения нуждаются в использовать один файл конфигурации. Насколько я понимаю, файлы app.config предназначены для Windows, консольных приложений и библиотек классов, тогда как web.config - для веб-проектов.
Во всех этих проектах должна быть доступна одна и та же конфигурация. Я читал, что предлагается использовать файл конфигурации компьютера, но у нас не всегда будет к нему доступ, поэтому файлы конфигурации должны находиться в нашем решении.
Я не совсем понимаю, как файлы конфигурации получают сборку. В настоящее время я написал простой проект, в котором у меня есть следующее:
Когда я выполняю следующий код, я ожидаю получить файл конфигурации с тестовыми значениями:
_applicationSettings = ConfigurationManager.OpenExeConfiguration(
System.Reflection.Assembly.GetAssembly(typeof(WCSConfiguration)).Location
).AppSettings;
Вместо этого я получаю пустой файл настроек приложения .
Библиотека классов содержит следующий файл App.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="TestTextKey" value="TestTextValue"/>
</appSettings>
</configuration>
Я пробовал использовать метод .GetExecutingAssembly ()
, который, как я ожидаю, вернет сборку кода, который выполняется в данный момент. Это не сработало, вместо этого была возвращена сборка приложения Windows.
GetAssembly (type (WCSConfiguration))
вернул правильную сборку, однако файл конфигурации отсутствовал в каталоге bin / debug.
У меня такое ощущение, что либо я ' я делаю что-то принципиально неправильное, или Microsoft не сделала это достаточно гибким. Я также попытался найти объяснение в MSDN, но это не было хорошо задокументировано IMO.
Я также оставил COM полужирным шрифтом, потому что я не уверен, будут ли вообще доступны какие-либо файлы конфигурации для библиотеки COM. Во-первых, хотелось бы, чтобы работали другие проекты.
Я понимаю, что это много информации. Любая помощь будет принята с благодарностью. Ранее мы решили использовать реестр, но это оказалось неприятным, главным образом потому, что доступ к реестру недоступен в некоторых сценариях. Кроме того, теперь у нас есть несколько версий приложений, и переключение между ветвями занимает получасовое задание: (
Спасибо
Редактировать:
Если я добавлю разделы конфигурации dll в app. config, что означает, что эти настройки будут доступны только из этого приложения. Пожалуйста, поправьте меня, если я ошибаюсь. Пример, который я привел, - это уменьшенная версия. Всего существует около десяти приложений Windows, один проект MVC и ряд библиотек классов, все из которых должны использовать эту конфигурацию.
Параметры конфигурации в основном представляют собой строки подключения, значения поиска, которые не принадлежат базе данных и несколько других второстепенных настроек. На этом этапе основное внимание уделяется строкам подключения. Существует несколько второстепенных выпусков приложения, каждый из которых указывает на отдельную базу данных.
Я бы хотел получить от этого хорошее работоспособное решение, чтобы его можно было опубликовать в Интернете, и другие люди, столкнувшиеся с той же проблемой, не тратили бы дни своего времени.
Боевой дух рассказа IMO: Пример, который я привел, - это уменьшенная версия. Всего существует около десяти приложений Windows, один проект MVC и ряд библиотек классов, все из которых должны использовать эту конфигурацию.
Параметры конфигурации в основном представляют собой строки подключения, значения поиска, которые не принадлежат базе данных и несколько других мелких настроек. На этом этапе основное внимание уделяется строкам подключения. Существует несколько второстепенных выпусков приложения, каждый из которых указывает на отдельную базу данных.
Я бы хотел получить от этого хорошее работоспособное решение, чтобы его можно было опубликовать в Интернете, и другие люди, столкнувшиеся с той же проблемой, не тратили бы дни своего времени.
Боевой дух рассказа IMO: Пример, который я привел, - это уменьшенная версия. Всего существует около десяти приложений Windows, один проект MVC и ряд библиотек классов, все из которых должны использовать эту конфигурацию.
Параметры конфигурации в основном представляют собой строки подключения, значения поиска, которые не принадлежат базе данных и несколько других второстепенных настроек. На этом этапе основное внимание уделяется строкам подключения. Существует несколько второстепенных выпусков приложения, каждый из которых указывает на отдельную базу данных.
Я бы хотел получить от этого хорошее работоспособное решение, чтобы его можно было опубликовать в Интернете, и другие люди, столкнувшиеся с той же проблемой, не тратили бы дни своего времени.
Боевой дух рассказа IMO: один проект MVC и ряд библиотек классов, все из которых должны использовать эту конфигурацию.
Параметры конфигурации - это в основном строки подключения, значения поиска, которые не принадлежат базе данных, и несколько других второстепенных параметров. На этом этапе основное внимание уделяется строкам подключения. Существует несколько второстепенных выпусков приложения, каждый из которых указывает на отдельную базу данных.
Я бы хотел получить от этого хорошее работоспособное решение, чтобы его можно было опубликовать в Интернете, и другие люди, столкнувшиеся с той же проблемой, не тратили бы дни своего времени.
Боевой дух рассказа IMO: один проект MVC и ряд библиотек классов, все из которых должны использовать эту конфигурацию.
Параметры конфигурации - это в основном строки подключения, значения поиска, которые не принадлежат базе данных, и несколько других второстепенных параметров. На этом этапе основное внимание уделяется строкам подключения. Существует несколько второстепенных выпусков приложения, каждый из которых указывает на отдельную базу данных.
Я бы хотел получить от этого хорошее работоспособное решение, чтобы его можно было опубликовать в Интернете, и другие люди, столкнувшиеся с той же проблемой, не тратили бы дни своего времени.
Боевой дух рассказа IMO: На этом этапе основное внимание уделяется строкам подключения. Существует несколько второстепенных выпусков приложения, каждый из которых указывает на отдельную базу данных.
Я бы хотел получить от этого хорошее работоспособное решение, чтобы его можно было опубликовать в Интернете, и другие люди, столкнувшиеся с той же проблемой, не тратили бы дни своего времени.
Боевой дух рассказа IMO: На этом этапе основное внимание уделяется строкам подключения. Существует несколько второстепенных выпусков приложения, каждый из которых указывает на отдельную базу данных.
Я бы хотел получить от этого хорошее работоспособное решение, чтобы его можно было опубликовать в Интернете, и другие люди, столкнувшиеся с той же проблемой, не тратили бы дни своего времени.
Боевой дух рассказа IMO: Используйте как App.config, так и Web.config, чтобы сохранить местоположение вашего собственного файла конфигурации.
Напишите простой XML-сериализатор для чтения / записи конфигурации и DLL для обслуживания конфигурации.
COM-объекты - длинная история и были реализованы с помощью «взлома», поскольку ни App.config, ни Web.config не доступны в COM DLL.