我在同一个c#/ .net解决方案中有很多程序集/项目。需要使用Web应用程序gui保存设置,然后控制台应用程序和一些测试项目需要访问同一文件。我应该把文件放在哪里以及如何访问它?
我尝试过使用“AppDomain.CurrentDomain.BaseDirectory”,但最终会因我的程序集而异。 “System.Reflection.Assembly.Get * Assembly.Location”也无法满足我的需要。
也许这不是我应该在文件中,而是数据库?但是对于几行配置来说,感觉非常复杂。
答案 0 :(得分:3)
将文件放入
Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
"[Company Name]\[Application Suite]");
答案 1 :(得分:1)
就个人而言,我会利用数据库,因为替代方案要么是配置问题,要么是比它的价值更麻烦。
您可以将每个应用程序配置为指向同一个文件,但如果您想移动该文件,则会出现问题。或者您可以编写一个服务来管理文件并将其公开给客户,但此时您也可以使用数据库。
答案 2 :(得分:0)
考虑将其存储在注册表或独立存储中?但是,不确定多个应用程序是否可以共享隔离存储。
答案 3 :(得分:0)
项目可以有构建事件 - 为什么不添加构建后事件来将文件复制到所有必需的位置?