Deixando várias montagens acessar o mesmo arquivo de texto
-
01-07-2019 - |
Pergunta
Eu tenho muitas montagens / projetos na solução líquida mesmo c # /.. A configuração precisa ser salvo por pessoas que usam o gui aplicação web, em seguida, um aplicativo de console e alguns projetos de teste precisam acessar o mesmo arquivo. Onde devo colocar o arquivo e como acessá-lo?
Eu tentei usar "AppDomain.CurrentDomain.BaseDirectory", mas que acaba por ser diferente para os meus assembléias. Também o "System.Reflection.Assembly.Get * Assembly.Location" deixar de me dar o que eu preciso.
Talvez isso não é algo que eu deveria, mas em um arquivo, mas o banco de dados? Mas parece tão complicado fazer isso para algumas linhas de configuração.
Solução
Pessoalmente, eu estaria alavancando o banco de dados porque a alternativa é ou uma dor de cabeça de configuração ou é mais problema do que vale a pena.
Você poderia configure cada aplicativo para apontar para o mesmo arquivo, mas que se torna problemático se você deseja mover o arquivo. Ou você poderia escrever um serviço para gerenciar o arquivo e expor isso aos clientes, mas neste momento você pode também apenas usar o DB.
Outras dicas
Coloque o arquivo no
Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
"[Company Name]\[Application Suite]");
Pensamento sobre armazená-lo no registro ou no armazenamento isolado? Não tenho certeza se vários aplicativos podem compartilhar armazenamento isolado ou não, no entanto.
projetos podem ter eventos de compilação - por que não adicionar um evento pós-compilação para copiar o arquivo para todos os locais necessários