У меня много сборок / проектов в одном решении C# /. Net. Люди, использующие графический интерфейс веб-приложения, должны сохранить настройку, а затем консольному приложению и некоторым тестовым проектам потребуется доступ к одному и тому же файлу. Куда мне поместить файл и как получить к нему доступ?
Я пробовал использовать «AppDomain.CurrentDomain.BaseDirectory», но в итоге мои сборки отличаются. Также "System.Reflection.Assembly.Get * Assembly.Location" не может дать мне то, что мне нужно.
Может быть, это не то, что мне нужно, а в файле, а в базе данных? Но это кажется таким сложным для нескольких строк конфигурации.
Мне интересно, возникнут ли у вас проблемы с блокировкой ... когда несколько приложений пытаются записать один и тот же файл.
Вайбхав: Только одна из сборок когда-либо будет записывать в файл.





Задумывались о том, чтобы хранить его в реестре или в изолированном хранилище? Однако не уверен, могут ли несколько приложений совместно использовать изолированное хранилище.
Не совсем, для этого их нужно развертывать с помощью ClickOnce.
Я не знаю. Кажется более логичным и безопасным поместить его в базу данных, чем в реестр. Или же?
Ну, я говорю, если у вас есть база данных, то да, положите их в базу обязательно ....
Поместите файл в
Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
"[Company Name]\[Application Suite]");
проекты могут иметь события сборки - почему бы не добавить событие после сборки, чтобы скопировать файл во все необходимые места?
Лично я бы использовал базу данных, потому что альтернатива - либо головная боль конфигурации, либо больше проблем, чем она того стоит.
Вы мог настраиваете каждое приложение так, чтобы оно указывало на один и тот же файл, но это становится проблематичным, если вы хотите переместить файл. Или вы можете написать службу для управления файлом и предоставить его клиентам, но на этом этапе вы также можете просто использовать БД.
Все сборки находятся в одном каталоге? Если нет, то не будет ничего, кроме наличия файла конфигурации для каждой сборки, указывающего на основной файл конфигурации.