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

标签 c# winforms random

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

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

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

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

最佳答案

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

您可以将其用作构建 token 。

作为Enigmativity请注意,您可以使用以下方法获得该值:

this.GetType().Assembly.ManifestModule.ModuleVersionId

关于c# - 在编译器时和永远生成随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28257906/

相关文章:

c# - 开放类型可以是结构吗?

c# - 将 .dll 合并到 C# 程序集中?

c# - 尝试从自定义类以编程方式添加在设计时添加到表单的 winforms 控件

c# - 为什么退出编辑模式时我的 datagridview 行会被排序?

javascript - 在 JavaScript 中获取范围随机数的最佳方法?

C#第二个下拉列表在提交时失败保留值

c# - 从 AssemblyInfo.cs 文件中读取版本号

c# - 在文本框中格式化 C#

c++ - rand() 总是在应用程序重启时返回相同的序列

java - HashMap.put 在 Java 中导致无限循环