c# - 如何跨项目和客户端自定义类库配置设置

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

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

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

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

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

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

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

任何人都可以就这里最好的东西向我提供一些帮助吗?我什至不知道我是否采取了正确的方法,但我很确定我不会是第一个问这个问题的人?

最佳答案

but then I get this problem, where the class library settings aren't pushed into the other projects

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

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

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

I now need to publish client-specific versions of my solution

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

  1. 从工具栏或构建菜单中,选择 Configurazion Manager...

Configurazion Manager...

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

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

enter image description here

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

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

关于c# - 如何跨项目和客户端自定义类库配置设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40016306/

相关文章:

c# - TPL Dataflow,如何将项目转发到许多链接目标 block 中的一个特定目标 block ?

javascript - 在 Web 浏览器中使用 JavaScript 运行批处理文件

asp.net 表单的 CSS 问题

c# - 如何通过 Protobuf/Protobuf-net 使用某些对象继承的列表/数组?

c# - Windows Phone C# 中的 XML 反序列化

c# - 使用 C# 通过具有嵌入式图像的 Windows 服务发送自动电子邮件

c# - 为什么 e.Row.Cells[2].Text 在 GridView1_RowDataBound 事件中总是显示 ""或 null

c# - 了解模拟权限

c# - 如何获取数组中字典的键和值?

c# - 在 Lucene 中跨字段搜索