【问题标题】:C# Propagate Conditional Compilation Symbols to multiple projectsC# 将条件编译符号传播到多个项目
【发布时间】:2018-12-08 02:15:42
【问题描述】:

使用 Visual Studio 2017,我有一个包含许多 C# 项目的解决方案。我正在尝试找到一种方法在一个位置设置条件编译符号,以便所有项目都可以访问它。

主要是因为我们的解决方案可以部署到两个实例之一。根据部署的位置,代码将需要访问不同的数据库(这两个数据库基本相同,但一个是我们的生产数据库,另一个用于测试,所以我们不会无意中破坏东西)。我希望程序员可以在一个地方设置一个标志,然后让所有项目都能够连接到适当的代码内数据库。我打算在设置连接字符串时使用#if TestDB ... #else ... #endif 来做到这一点。

由于其他一些标志已经在使用中,我想避免使用不同的配置(发布、调试)...

任何帮助将不胜感激!

【问题讨论】:

  • 创建一个 directory.props 文件并使用您的符号设置一个 DefineConstants 属性
  • @pinkfloydx33 您能否在答案中提供更多详细信息?或者它的文档链接?

标签: c# projects-and-solutions conditional-compilation


【解决方案1】:

它是什么类型的解决方案? Web 应用程序/Windows 应用程序等。我不确定您为什么不想使用不同的配置 - 例如,如果它是一个 Web 应用程序,那么您也可以为每个要部署的不同实例进行 web.config 转换 - 和然后在transform中根据需要设置连接字符串

你有 CI/CD 管道吗?如果有的话,也许你可以用 Powershell 来实现它

【讨论】:

  • 很遗憾,我们没有使用 Ci/CD。我们正在处理 Web 应用程序,但根据我对使用 web.config 转换的理解,这需要有不同的配置来选择转换。两个问题:1)您需要为每个项目(其中有很多)定义一个转换和 2)我试图避免使用构建配置。
猜你喜欢
  • 1970-01-01
  • 2016-06-12
  • 1970-01-01
  • 1970-01-01
  • 2012-05-29
  • 1970-01-01
  • 2013-11-08
  • 2016-06-24
  • 1970-01-01
相关资源
最近更新 更多