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

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

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

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

Все сборки находятся в одном каталоге? Если нет, то не будет ничего, кроме наличия файла конфигурации для каждой сборки, указывающего на основной файл конфигурации.

Brad Bruce 19.09.2008 15:44

Мне интересно, возникнут ли у вас проблемы с блокировкой ... когда несколько приложений пытаются записать один и тот же файл.

Vaibhav 19.09.2008 15:45

Вайбхав: Только одна из сборок когда-либо будет записывать в файл.

Peter Evjan 19.09.2008 16:13
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
194
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

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

Не совсем, для этого их нужно развертывать с помощью ClickOnce.

Peter Evjan 19.09.2008 15:43

Я не знаю. Кажется более логичным и безопасным поместить его в базу данных, чем в реестр. Или же?

Peter Evjan 19.09.2008 15:47

Ну, я говорю, если у вас есть база данных, то да, положите их в базу обязательно ....

Vaibhav 19.09.2008 15:48

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

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

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

Ответ принят как подходящий

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

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

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