【发布时间】:2011-01-25 11:47:52
【问题描述】:
我有一个相当复杂的解决方案,除了测试项目外,还包含 10 个项目。 它是一个使用远程通信的分布式应用程序和服务网络;因此,拥有正确引用的程序集(和版本)至关重要。这就是为什么我希望在 ONE 构建中编译和 schrink-wrap 整个东西。
其中一个应用程序是一个演示/分析工具,它根据用户的输入运行另一个更大的应用程序的子进程并显示结果;这样,工程师就有了一个工具来帮助调整他们的“大计算”设置。显然,该子流程包含在另一个程序集中,并且呈现给工程师的大部分结果是由
#if ENABLE_TRACE_MATCHING
Trace.WriteLine("Some engineering output");
#endif
我的问题是项目设置中的条件编译符号仅限于该项目的程序集,并且不会传播到引用的程序集。 我如何配置我的构建,使所有项目都将在 未定义 ENABLE_TRACE_MATCHING 的情况下构建,除了一个调试/分析应用程序项目,其中所有引用的项目/程序集都必须使用 ENABLE_TRACE_MATCHING 进行编译 被定义
我也不能用#if DEBUG 替换#if ENABLE_TRACE_MATCHING,因为这会导致我们的工程师不知道如何处理的大量不同输出。
提前致谢。
PS:如果您认为我的代码有异味,那么我同意。另外:这主要不是我的代码;)
【问题讨论】:
-
我忘了说:都是 C# 和 .NET 3.5
标签: c# .net build compilation