Разрешение нескольким сборкам доступа к одному и тому же текстовому файлу
-
01-07-2019 - |
Вопрос
У меня есть много сборок/проектов в одном решении С#/.net.Пользователи, использующие графический интерфейс веб-приложения, должны сохранить настройку, а затем консольному приложению и некоторым тестовым проектам потребуется доступ к одному и тому же файлу.Куда поместить файл и как получить к нему доступ?
Я пробовал использовать «AppDomain.CurrentDomain.BaseDirectory», но для моих сборок это получается по-другому.Также «System.Reflection.Assembly.Get*Assembly.Location» не дает мне того, что мне нужно.
Может быть, мне следует делать это не в файле, а в базе данных?Но сделать это для нескольких строк конфигурации кажется настолько сложным.
Решение
Лично я бы использовал базу данных, потому что альтернатива — это либо головная боль при настройке, либо больше проблем, чем пользы.
Ты мог настройте каждое приложение так, чтобы оно указывало на один и тот же файл, но это становится проблематичным, если вы хотите переместить файл.Или вы можете написать службу для управления файлом и предоставить его клиентам, но на этом этапе вы также можете просто использовать БД.
Другие советы
Поместите файл в
Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
"[Company Name]\[Application Suite]");
Думали о хранении его в реестре или в изолированном хранилище?Однако не уверен, могут ли несколько приложений совместно использовать изолированное хранилище или нет.
проекты могут иметь события сборки — почему бы не добавить событие после сборки, чтобы скопировать файл во все необходимые места?