bep*_*000 0 .net c# vb.net c-preprocessor visual-studio-2015
我试图搜索#define/#const默认列表(例如DEBUG和TRACE),但在互联网上没有找到任何内容......
我有一个源文件,用于通用帮助器方法(实用程序,如自定义操作符,扩展使用字符串,弹出一个带有属性网格编辑器的表单等),在多个项目之间共享(使用添加现有项 - >链接) .
定义的一些函数是相对于WinForms的,这导致编译器在构建Console项目时抱怨它,因为缺少对System.Windows.Forms的引用.
是否有#Const或#define告诉当前的应用程序类型(<MyType>WindowsForms</MyType>)?我不想将它拆分为两个文件,所以我正在寻找一些不涉及创建类库的工作方式,从控制台引用winforms,以及为每个项目定义一个常量(这是因为我觉得不能以某种方式使用项目属性中已经指定的应用程序类型).
我认为这个问题可以概括为:
(如何)我可以确定在编译时是否在项目中引用了assembly \namespace以应用条件编译?
这将是滥用条件汇编.它实际上适用于各种配置或平台定位,而不是用于分割代码.
将您的代码拆分为两个库,一个核心库(用于控制台/ WinForms)和另一个仅与WinForms相关的库.您不需要在此处进行条件编译.您需要将代码组织为更加模块化,以满足您的应用程序开发需求.然后您的控制台应用程序可以使用核心库,您的WinForms应用程序可以使用它们.