use*_*939 6 .net c# compilation build
我有一个非常复杂的解决方案,除了测试项目之外还包含10个项目.它是使用远程通信进行通信的分布式应用程序和服务的网络; 因此,拥有适当的参考组件(和版本)至关重要.这就是为什么我希望在ONE build中编译和压缩包装的全部内容.
其中一个应用程序是演示/分析工具,它根据用户的输入运行另一个 - 更大 - 应用程序的子流程并显示结果; 通过这种方式,工程师可以使用工具来帮助调整"大计算"的设置.显然,子进程包含在另一个程序集中,并且由工程师生成了很大一部分结果
#if ENABLE_TRACE_MATCHING
Trace.WriteLine("Some engineering output");
#endif
Run Code Online (Sandbox Code Playgroud)
我的问题是项目设置中的条件编译符号仅限于该项目的程序集,并且不会在引用的程序集上传播.我如何配置我的构建中,所有项目将建成这样的方式,而不 ENABLE_TRACE_MATCHING被定义,除了一个调试/分析应用程序内的项目中所有引用的项目/组件必须与ENABLE_TRACE_MATCHING编译所定义
我也无法用#if DEBUG替换#if ENABLE_TRACE_MATCHING,因为这样可以实现我们工程师不知道如何处理的大量不同输出.
提前致谢.
PS:如果您认为我的代码闻起来,那么我同意.另外:它主要不是我的代码;)
您需要了解有关 Microsoft Build 的更多信息,它是任何框架安装中都存在的开箱即用的 Microsoft .NET 工具。
使用 MSBuild,您可以定义这些“符号”(属性)和一批命令(目标)。
也就是说,您可以创建一个 MSBuild 脚本,从解决方案中的所有项目导入默认的 Visual Studio 目标,并在脚本中声明这些属性(“符号”)。
事实上,设置此类符号的属性已经存在:“DefineConstants”。
因此,既然您拥有了它,您就可以拥有提供该属性值的 MSBuild 脚本,并在那里重新声明它,因此,所有 MSBuild 目标都将了解这些符号。
编辑:也检查另一个问题: msbuild,定义条件编译符号
| 归档时间: |
|
| 查看次数: |
3345 次 |
| 最近记录: |