Разрешение нескольким сборкам доступа к одному и тому же текстовому файлу

StackOverflow https://stackoverflow.com/questions/101238

Вопрос

У меня есть много сборок/проектов в одном решении С#/.net.Пользователи, использующие графический интерфейс веб-приложения, должны сохранить настройку, а затем консольному приложению и некоторым тестовым проектам потребуется доступ к одному и тому же файлу.Куда поместить файл и как получить к нему доступ?

Я пробовал использовать «AppDomain.CurrentDomain.BaseDirectory», но для моих сборок это получается по-другому.Также «System.Reflection.Assembly.Get*Assembly.Location» не дает мне того, что мне нужно.

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

Это было полезно?

Решение

Лично я бы использовал базу данных, потому что альтернатива — это либо головная боль при настройке, либо больше проблем, чем пользы.

Ты мог настройте каждое приложение так, чтобы оно указывало на один и тот же файл, но это становится проблематичным, если вы хотите переместить файл.Или вы можете написать службу для управления файлом и предоставить его клиентам, но на этом этапе вы также можете просто использовать БД.

Другие советы

Поместите файл в

    Path.Combine(
        Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
        "[Company Name]\[Application Suite]");

Думали о хранении его в реестре или в изолированном хранилище?Однако не уверен, могут ли несколько приложений совместно использовать изолированное хранилище или нет.

проекты могут иметь события сборки — почему бы не добавить событие после сборки, чтобы скопировать файл во все необходимые места?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top