让多个程序集访问同一个文本文件

时间:2020-03-06 14:25:35  来源:igfitidea点击:

我在同一个c#/。net解决方案中有很多程序集/项目。人们需要使用Web应用程序gui保存设置,然后控制台应用程序和某些测试项目需要访问相同的文件。我应该在哪里放置文件以及如何访问它?

我尝试使用" AppDomain.CurrentDomain.BaseDirectory",但最终对于我的程序集有所不同。同样," System.Reflection.Assembly.Get * Assembly.Location"无法满足我的需求。

也许这不是我应该的,而是在文件中,而是数据库?但是对于几行配置而言,这样做是如此的复杂。

解决方案

想将其存储在注册表或者隔离存储中吗?但是,不确定多个应用程序是否可以共享隔离存储。

放入文件

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

项目可以具有构建事件-为什么不添加构建后事件以将文件复制到所有所需位置?

就我个人而言,我将利用数据库,因为替代方案或者是配置麻烦,或者是麻烦莫过于其价值。

我们可以将每个应用程序配置为指向相同的文件,但是如果我们要移动文件,这将成为问题。或者,我们可以编写服务来管理文件并将其公开给客户端,但是此时,我们也可以只使用数据库。