如何跨项目自定义类库配置设置&客户

时间:2016-10-13 08:48:09

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

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

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

  1. 类库(包含数据库连接字符串,电子邮件服务器设置以及许多其他设置)
  2. 网络应用程序(网络表单)
  3. Web应用程序(MVC)
  4. Web API
  5. 项目2,3& 4都引用类库,并使用数据库连接字符串等来运行。这些项目还在web.config中包含自己的附加设置,定制到该项目。

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

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

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

1 个答案:

答案 0 :(得分:1)

  

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

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

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

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

  

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

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

  1. 从ToolBar或Build Menu中选择Configurazion Manager ...
  2. Configurazion Manager...

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

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

    3. enter image description here

      1. 现在,您可以为ClientABC,ClientXYZ指定不同的配置转换,并使用特定配置发布它们
      2. 修改: 因此,您也可以为您的类库或外部配置文件采用此解决方案,并在您的web.config中包含外部文件:External Config