在编译器时和永远生成随机值

Mat*_*ini 2 c# random winforms

所以,我不知道我的问题是否完全清楚,但我想要做的是一个简单的概念:我想在编译 ac# windows 窗体应用程序时,变量 X 假设一个我不知道的值。但是每次我执行应用程序而不再次编译它时,这个值是相同的(但你不知道)。所以我要问的是是否有可能编译一些你不知道哪个值的东西。应用程序每次都会使用具有相同值的相同变量,但是每次再次编译应用程序时,该变量都会改变。

我正在尝试实现一种安全算法,该算法对于我的应用程序的每个发行版都会有所不同,但我想以自动方式执行此操作,而无需更改我的应用程序的每个版本的手动参数。

我的意思的一个简单例子:

  • (编译时)i = rand()。
  • (执行应用程序时) i = ? (一些您永远不会知道的值,但每次执行应用程序时都是相同的)

oɔɯ*_*ɯǝɹ 5

C# 编译器在每个构建中发出唯一(随机)的ModuleVersionId (Guid)。即使从完全相同的来源构建,这也有所不同。

您可以将其用作构建令牌。

正如Enigmativity亲切提到的,您可以使用以下方法获得该值:

this.GetType().Assembly.ManifestModule.ModuleVersionId
Run Code Online (Sandbox Code Playgroud)