微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 在编译期间是否只包含某些表单

我们正在开发两个版本的应用程序.不是应用程序的精简版和标准版,其中一个版本将具有有限的功能等.我们将在应用程序中实际显示不同类型的信息,具体取决于版本(这是我可以描述它的最佳方式)进入太多细节).

为了区分我们考虑使用条件属性和#if指令的应用程序的两个版本(如果有任何其他选项或比这两个更好的方法,我愿意接受建议).经过一些研究和辩论后,我们决定采用#if方法,因为在编译过程中不会包含不必要的代码(而条件属性只会删除对不符合条件的方法调用,但仍然包括方法……如果我没有记错的话).我意识到这两者并不是相互排斥的,所以如果需要,我们总能混合搭配.

无论如何……我们现在想知道的是,如果有一种方法在编译期间只包含某些窗体,基于我们正在编译的应用程序版本.我们已经拆分了所有逻辑,因此表单实际上只是表单,其中包含很少的代码(大多数只是调用处理所有业务逻辑的表单管理器类).表单管理器类将包含其中的一些#if语句,因此代码可以在应用程序的两个版本中重用,尽可能(而不是制作两个类并在类上放置条件属性…尽管可能这是我们应该考虑的事情).

有人知道这样做的好方法吗?

TIA

更新:

只是我们实际决定做的一个FYI.我们将表单的不同版本放入单独的命名空间中,然后只需在命名空间的#if语句中使用管理所有表单的类顶部的语句.工作得相当光滑,非常轻松的工作.

解决方法

我是用图书馆项目做的.我生成一个项目(.csproj),然后在该项目中包含现有的源代码.在VS2008中,右键单击新项目,单击“添加现有项目…”,然后单击“添加”,使用选择箭头选择“添加链接”.

Add as Link将包含对现有源的引用,而不是复制源模块,而不是复制源模块.这样您就可以拥有N个项目,每个项目都有不同的源模块组合.我将它与通用模块源中的#if语句一起使用,以生成不同版本的库.

Add Existing Item http://www.freeimagehosting.net/uploads/th.eff09391e9.png
full image

Add as Link http://www.freeimagehosting.net/uploads/th.f12b764887.png
full image

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐