Файл конфигурации JSON, совместно используемый проектами в одном решении - PullRequest
0 голосов
/ 20 марта 2019

Я пишу веб-приложение, которое состоит из 3 проектов. Веб-сайт ASP.net MVC5, служба Windows, которая выполняет задания, которые пользователи планируют использовать с помощью веб-сайта, а затем библиотека классов, на которую ссылаются два других проекта. У меня есть файл конфигурации JSON, на который ссылается библиотека классов. Он содержит данные о том, как должны выполняться задания. Я хочу включить его в свой источник контроля и хочу, чтобы это был JSON, чтобы мои коллеги, использующие приложение, могли легко изменить его без перекомпиляции решения. Только библиотека классов должна иметь доступ к файлу json - два других проекта ссылаются на библиотеку классов, поэтому они по существу ссылаются на настройки в файле json, получая доступ к классам в библиотеке классов.

Моя проблема в том, что я ссылаюсь на путь к файлу конфигурации json в классах библиотеки классов следующим образом: AppDomain.CurrentDomain.BaseDirectory + "config.json" Однако, когда веб-сервер создает экземпляр класса из библиотеки классов, путь разрешает базовый каталог веб-сервера вместо библиотеки классов, что неудивительно.

Какой лучший способ сделать это? Могу ли я сохранить файл конфигурации надолго в проекте веб-приложения, а затем, возможно, иметь ссылку на файл конфигурации в проекте службы Windows? Не знаете, как это будет работать после развертывания решения?

Веб-проект - это стандарт .NET MVC 5. JSON гораздо предпочтительнее XML для типов конфигурационных файлов.

1 Ответ

0 голосов
/ 20 марта 2019

Я только что проверил это, чтобы убедиться, что это должно работать:

Если ваш файл находится в проекте библиотеки классов, вы можете просто перейти в обозреватель решений, щелкнуть по нему правой кнопкой мыши,> свойства,затем в окне найдите copy to output directory.Задайте для этого параметра значение Always или only if newer, которое вам больше всего подходит, и его следует скопировать в папки bin ваших проектов, которые ссылаются на библиотеку классов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...