感觉这应该有一个简单的解决方案。在2个应用程序之间共享配置
我正在开发一个工具,它将有一些组件 - 它将开始作为一个命令行工具,然后我们将打包在一个wpf应用程序中。该工具用于生成数据库迁移脚本。这些将由源代码控制,并位于每个用户机器的特定位置。
我想将此位置存储为不需要提供给命令行程序的设置,并且可以在UI版本中进行设置。也可能有其他信息在这样的程序之间共享是有用的(一次一次/很少的方式)。
我不想在代码中有配置文件的硬编码路径,因为这不会在程序的不同用户之间移植。
我知道我可以将目录名称传递给命令行应用程序,也可以通过在其计算机上手动设置人员的应用程序配置来完成此操作。我不喜欢前者,因为它是重复的,在命令行输入路径是一种痛苦,我不喜欢后者,因为如果你需要改变它,那么你必须弄清楚程序在做什么,然后在随机文件夹中进行挖掘手动修改文件(这又是非常可怕的!)。
这似乎应该解决问题,它可能是 - 我觉得我可能在某个地方错过了一个把戏。
我对使用本地设置对象并不烦恼 - 在许多方面,我宁愿它只是一个xml文件,因为它使得升级或添加新东西变得更加简单。
想法请!
你能否提供更多关于如何使用设置来做到这一点的信息(我认为默认的东西现在应该可以)。我是否需要保持不同项目中的设置同步?这似乎有点讨厌。这些设置通常是透明地存储的,你如何选择他们去的地方?有人提到有Environment.AppData或类似的地方,所以这看起来像是要走的路。 –
您可以使用configSource属性将userSettings部分的内容移动到外部文件中。然后这个外部文件可以在两个应用程序之间共享。但是,这种方法存在局限性,因为这个外部文件不能放在任何地方。它必须与主配置文件位于相同的目录或子目录中。如果你想要更灵活的解决方案,你必须写你自己的设置提供商。 –