【问题标题】:How to customize class library config settings across projects & clients如何跨项目和客户端自定义类库配置设置
【发布时间】:2017-02-22 07:12:48
【问题描述】:

如果之前有人问过这个问题,我们深表歉意;经过两天的搜索,我只能找到与我的情况不完全相关的部分答案,并且由于我缺乏经验而难以理解。

我有一个包含四个项目的解决方案:

  1. 类库(包含数据库连接字符串、电子邮件服务器设置以及许多其他设置)
  2. Web 应用程序(Web 表单)
  3. Web 应用程序 (MVC)
  4. 网络 API

项目 2,3 和 4 都引用类库,并使用数据库连接字符串等来运行。这些项目还在 web.config 中包含自己的附加设置,为该项目定制。

到目前为止一切都很好......但是,我现在需要发布我的解决方案的特定于客户端的版本,例如ClientABC 的解决方案要求每个项目的设置与 ClientXYZ 不同。所有其他方面都保持不变,只是需要更改四个项目的配置设置。

根据我的研究,我发现了一个名为 SlowCheetah 的东西,它根据发布配置文件转换配置文件。这听起来很有希望,但后来我得到了this problem,其中类库设置没有被推送到其他项目中。我可以在this question 中看到一些有用的信息,但没有经验将其应用于我的问题。如果可能的话,我宁愿不要将设置复制到相应项目的配置文件中,因为这感觉很乱。

谁能帮我看看这里有什么最好的?我什至不知道我是否采取了正确的方法,但我很确定我不能成为第一个提出这个问题的人?

【问题讨论】:

  • 谢谢。我已经读过这篇文章,但我不明白如何将答案应用到我自己的解决方案中,这确实是我提出问题的主要原因。

标签: c# asp.net .net visual-studio class-library


【解决方案1】:

但后来我遇到了这个问题,类库设置没有推送到其他项目中

您必须记住,配置文件是由您的客户端 SturtUp 应用程序读取的。类库不能直接运行,而是在 WebApp 或 WinApp 或 ConsoleApp 内运行

因此,您放入 ClassLibrary 配置文件的所有设置必须复制到 WebApp 的配置文件中。

通常,我将一些设置从 app.config 复制到 web.config,但是,如果您在互联网上搜索,您可以找到一种自动执行此操作的方法。

我现在需要发布我的解决方案的客户特定版本

您可以创建许多配置文件并使用 web.config 转换:

  1. 从工具栏或构建菜单中,选择配置管理器...

  1. 为客户端创建所需的所有配置

  2. 现在您可以看到不同的 web.configuration 文件

  1. 现在您可以为您的 ClientABC、ClientXYZ 指定不同的配置转换并使用特定配置发布它们

编辑: 因此,您也可以为您的类库或外部配置文件采用此解决方案,并在您的 web.config 中包含外部文件:External Config

【讨论】:

  • 嗨。对了谢谢。我了解发布配置文件并已经使用它们。但我试图避免在每个应用程序中重复设置,因为这可能会导致管理负担和错误。难道没有别的办法了吗?目前看来,把任何配置数据放到类库中都是浪费时间……
  • 虽然这不是我希望的答案,但它为我指明了将设置文件放在外部的正确方向,并在启动时使用发布配置文件动态加载它们以隔离正确的设置文件.
猜你喜欢
  • 1970-01-01
  • 2013-01-22
  • 2019-11-12
  • 1970-01-01
  • 2015-09-26
  • 2017-05-19
  • 1970-01-01
  • 2018-12-08
  • 2017-02-19
相关资源
最近更新 更多