C# 如何在VS 2008和.NET中使用跨越多个解决方案和项目的设置
我不太清楚.NET和C#3.5如何处理跨越多个项目和多个解决方案的应用程序设置。也许有人能帮我把事情弄清楚 我有两个解决方案,都包含几个项目。其中一些项目在Properties文件夹下包含Setttings.settings文件,其中包含此项目中的源文件所需的特定配置变量 差不多C# 如何在VS 2008和.NET中使用跨越多个解决方案和项目的设置,c#,.net,settings,projects,C#,.net,Settings,Projects,我不太清楚.NET和C#3.5如何处理跨越多个项目和多个解决方案的应用程序设置。也许有人能帮我把事情弄清楚 我有两个解决方案,都包含几个项目。其中一些项目在Properties文件夹下包含Setttings.settings文件,其中包含此项目中的源文件所需的特定配置变量 差不多 作业管理器解决方案 Manager.Core(带有设置文件) Manager.UserInterface(带有设置文件) 经理,分机 进口商解决方案 导入器(带设置文件) 服务(带有设置文件) 可以看出,Man
- Manager.Core(带有设置文件)
- Manager.UserInterface(带有设置文件)
- 经理,分机
- 导入器(带设置文件)
- 服务(带有设置文件)
Manager.Core
包含自己的配置文件,用于存储数据库连接信息和其他内容,而导入器
包含自己的配置文件,其中存储导入目录的路径,以知道从何处获取需要导入到数据库中的文件,使用Manager.Core
执行此操作。(这就是Manager.Core的作用所在,它包含了与DB一起工作的所有查询和插入)
另一方面,服务
是一个Windows服务,它使用导入程序,让它每小时左右运行一次,包含错误记录路径的自身配置设置
现在,当我编译服务时,只有一个名为Service.exe.config的配置文件,其中只包含服务项目中指定的配置参数。我的第一种方法是复制Service.exe.config中Manager.Core和Importer的每个设置条目。但测试表明,不知何故,进口商的参数是存在和使用的
Service.exe.config中不存在Manager.Core
和Importer
的设置时,它们存储在哪里
Manager.Core
的设置是否也存在,这意味着无需在服务设置文件中复制这些配置设置的条目
亲切问候,,
Michael未使用这些选项,但您能否将它们替换为指向解决方案中单个文件的链接?设置默认值通常生成为代码,然后编译到生成的dll中 他们将CustomTool属性设置为“SettingsSingleFileGenerator” 对于一个名为Foo.settings的设置文件,其中包含一个值“MyName”,其作用域应用程序类型为字符串,在命名空间Company.Properties(名为“Company”的项目的默认位置)中的值为“Shuggy”。如果查看reflector中的dll,您将在Company中找到一个类。Properties命名空间如下所示:
[GeneratedCode(
"Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator"
,"9.0.0.0")]
[CompilerGenerated]
internal sealed class Foo : ApplicationSettingsBase
{
private static Settings defaultInstance =
((Settings) SettingsBase.Synchronized(new Settings()));
public static Settings Default
{
get { return defaultInstance; }
}
[ApplicationScopedSetting]
[DefaultSettingValue("Shuggy")]
[DebuggerNonUserCode]
public string MyName
{
get
{
return (string) this["MyName"];
}
}
}
这就是设置结构和默认值在与其相关的DLL中持久化的方式。实际值是从各种配置文件中读取的,具体取决于作用域(以及应用程序决定执行的编程更改)
有关如何使用这些工具的更高层次视图,请参见可以做到这一点,尽管我更愿意利用已有的工具。这并不是说它不起作用,我只是不明白它到底是如何起作用的这是否意味着,当我在应用程序中包含外部DLL时,如果不重新编译外部DLL,我无法更改其应用程序设置?可以通过标准用户级或应用程序级文件更改设置,我不认为可以从foo.exe.config文件更改用户设置,但可以查看应用程序范围的设置,以了解这些设置的工作原理。