我有一个相当复杂的解决方案,除了测试项目外还包含10个项目。这是一个分布式应用程序和服务网络,使用远程通信; 因此,拥有正确的引用程序集(及其版本)至关重要。这就是为什么我希望整个解决方案可以在一个构建中编译和打包的原因。
其中一个应用程序是演示/分析工具,它运行另一个更大的应用程序的子进程,基于用户的输入并显示结果。这样工程师们就有了一个工具来帮助调整他们的设置以进行“大型计算”。显然,该子进程包含在另一个程序集中,并且向工程师呈现的结果的很大一部分是由此生成的。
我的问题是项目设置中的条件编译符号仅限于该项目的程序集,而不会传播到引用的程序集。我该如何配置我的构建方式,以便所有项目都将被构建而没有定义ENABLE_TRACE_MATCHING,除了一个调试/分析应用程序项目,在该项目中,所有引用的项目/程序集必须使用已定义ENABLE_TRACE_MATCHING进行编译。
我也不能用#if DEBUG替换#if ENABLE_TRACE_MATCHING,因为那将启用大量不同的输出,我们的工程师不知道如何处理。
提前致谢。
PS:如果您认为我的代码有问题,那么我同意。此外:它大部分不是我的代码;)
其中一个应用程序是演示/分析工具,它运行另一个更大的应用程序的子进程,基于用户的输入并显示结果。这样工程师们就有了一个工具来帮助调整他们的设置以进行“大型计算”。显然,该子进程包含在另一个程序集中,并且向工程师呈现的结果的很大一部分是由此生成的。
#if ENABLE_TRACE_MATCHING
Trace.WriteLine("Some engineering output");
#endif
我的问题是项目设置中的条件编译符号仅限于该项目的程序集,而不会传播到引用的程序集。我该如何配置我的构建方式,以便所有项目都将被构建而没有定义ENABLE_TRACE_MATCHING,除了一个调试/分析应用程序项目,在该项目中,所有引用的项目/程序集必须使用已定义ENABLE_TRACE_MATCHING进行编译。
我也不能用#if DEBUG替换#if ENABLE_TRACE_MATCHING,因为那将启用大量不同的输出,我们的工程师不知道如何处理。
提前致谢。
PS:如果您认为我的代码有问题,那么我同意。此外:它大部分不是我的代码;)