【问题标题】:common Settings.settings file for entire solution整个解决方案的通用 Settings.settings 文件
【发布时间】:2011-08-13 04:11:33
【问题描述】:

有没有办法为解决方案的所有项目提供通用属性文件?

我有一个控制台应用程序和一堆其他类库文件,我只想为它们提供一个设置文件。

我不是在谈论 app.Config 文件。我说的是 Settings.settings 文件。

知道我该怎么做吗?

将配置设置存储在设置文件而不是 app.config 中是否也是一种好习惯?

【问题讨论】:

  • 我认为这会破坏整个解决方案/项目的想法。您可以为一个解决方案创建多个项目,以便在其他解决方案中轻松重现部分代码。项目不是一种组织解决方案的方式——因为你最好在项目中使用文件夹。
  • settings.settings 文件中的内容生成 app.config 文件的内容,该文件对每个解决方案都是唯一的。除非您的类库文件有应用程序(而不是用户)设置,否则您的设计将很快显示出一些设计缺陷。如果您正在处理生成单个项目的多个解决方案,我强烈建议您避免使用配置文件。
  • 我是否说过我有多个解决方案可以生成单个项目?我想做的就是在整个项目中拥有通用的 Settings.setting 文件。就像我们有 web.config 或 app.config 一样。
  • app.config 没有正常保存,web.config 是另一种动物。

标签: c# properties settings


【解决方案1】:

将要跨项目共享的文件放在解决方案文件夹中。然后,在每个项目中,选择 Add Existing Item ..

在“添加现有项目”对话框中,选择公用文件。不要单击“添加”按钮,而是单击“添加”按钮右侧的下拉箭头,然后从下拉菜单中选择“添加为链接”。

如果这是设置文件,则需要为文件设置自定义工具属性:

如果您的文件是 Settings.settings,您可以打开项目属性并转到“设置”选项卡,Visual Studio 将自动为您设置此自定义工具属性。

设置自定义工具后,您将看到在设置文件下创建的 Designer.cs 文件。此 Designer.cs 文件包含生成的代码,可让您以编程方式访问您的设置。

如您所见,Designer.cs 文件也是一个链接文件,它的物理位置将与您的设置文件相同。

【讨论】:

  • 但是如果我尝试像类库中的 Properties.Settings.Default.SettingName 一样访问它们,它不会识别它。
  • 如果这解决了您的问题(应该),我们将不胜感激并接受我的回答,谢谢。
  • 我会在尝试解决方案后投票并接受您的回答。给我一些时间。
  • 如下 Lu​​is 所述,您可能还需要设置“自定义工具命名空间”以避免 Visual Studio 生成具有错误命名空间的 .cs 文件。
  • 如果您有一个 Web 应用程序 (ASP.NET MVC),并且您希望配置覆盖同一解决方案的引用类库中的 app.config 类,该怎么办?
【解决方案2】:

或者,您可以将设置设置为public,而不是internal

转到你的项目->属性->设置

【讨论】:

  • 从来没有注意到屏幕顶部的访问修饰符下拉菜单,几乎看不到它的黑色背景(使用我的 Visual Studio“黑暗”主题)。很棒的提示!
【解决方案3】:

@quentin-starin 上面接受的答案是正确的,但我遇到了一种情况,指定 CustomToolNamespace 会派上用场,因为我已经有了一些项目特定的设置。通过将命名空间设置为特定的东西,我没有得到与解决方案中每个项目相关的自动生成的命名空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    • 1970-01-01
    相关资源
    最近更新 更多