【发布时间】:2020-09-03 09:10:44
【问题描述】:
我有一个应用程序,我想为它创建一个演示。我更愿意为我的付费版本提供另一个 exe,而为演示提供不同的 exe,以防止拥有演示版本的人破解我的付费版本。现在我已经在演示中注释了我需要的代码,所以每当我必须创建一个演示时,我都会检查这些 cmets 并进行必要的更改。今天我实现了#if指令..
现在我的问题是我是否有这样的代码
#if DEMO
public string test()
{
return "blabla";
}
#endif
而且我没有定义DEMO 指令,所以我的代码显然变灰了,我无法达到我目前所期望的这种方法。现在我在没有定义 DEMO 指令的情况下重建了我的项目,然后我从输出文件夹中删除了我的 .pdb 文件,之后我尝试使用 dotpeek 检查我的可执行文件,但在那里我看不到这个测试方法。
我可以使用这种方法来分离我的演示版和付费版可执行文件吗?可以说这个test 方法是一个演示方法,所以如果有人破解它,它不会在付费版本中看到。反之亦然,如果此 test 方法是付费版本方法,并且我将其放入 #if !DEMO 中,那么如果我定义 DEMO 并重建我的 exe,我将看不到此 test 方法,对吧?
正如我之前提到的,我已经检查了代码并且无法使用 dotpeek 看到我的方法,但我只想 100% 确定这些方法不会在 dotpeek 等程序或其他任何地方看到
【问题讨论】:
标签: c# visual-studio preprocessor-directive