所以,我不知道我的问题是否完全清楚,但我想做的是一个简单的概念:我想在编译 C# Windows 窗体应用程序时,变量 X 假定一个我不知道的值.但是每次我执行应用程序而不重新编译它时,这个值都是相同的(但你不知道)。所以我要问的是,是否有可能编译一些你不知道哪个值的东西。应用程序每次都会使用具有相同值的相同变量,但每次再次编译应用程序时,此变量都会发生变化。
我正在尝试实现一种安全算法,该算法对于我的应用程序的每个发行版都是不同的,但我想以自动方式执行此操作,而无需为我的应用程序的每个版本更改手动参数。
我的意思的一个简单例子:
- (编译时)i = rand()。
- (当执行应用程序时)i = ? (一些你永远不会知道的值,但每次执行应用程序时都是一样的)
最佳答案
C# 编译器发出一个唯一的(随机的)ModuleVersionId (指导)在每个构建中。即使从完全相同的来源构建时,情况也会有所不同。
您可以将其用作构建 token 。
作为Enigmativity请注意,您可以使用以下方法获得该值:
this.GetType().Assembly.ManifestModule.ModuleVersionId
关于c# - 在编译器时和永远生成随机值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28257906/