条件编译符号是否可见

时间:2013-10-27 16:26:52

标签: c# conditional-compilation

我有一个申请,我将有两个版本 - 试用和商业。与商业版相比,试用版具有一些有限的功能。但是,我需要做到这一点,以便当有试用版时,他将无法发现完整版的功能。最简单的想法是有两个完全独立的构建,但是这很难维护(我认为)。我的第二个想法是使用条件编译符号构建解决方案 - 试用和完整。我将调整源代码以这种方式工作,我将使用#If语句。我的问题是这是否安全。因为看起来不在Full编译符号的#If语句中的代码将从程序集中排除,但我需要你的帮助,因为我需要确定。非常感谢

1 个答案:

答案 0 :(得分:2)

通过条件编译排除的正确代码不会包含在生成的可执行文件中。以这种方式它是安全的,即它不能被黑客攻击以执行那里不存在的代码。所有托管代码的性质都是可以解密的。

您不能使用条件编译来生成包含代码状态(已定义/未定义)的单个可执行文件,并在运行时选择行为。