如何更改 .exe 文件的变量?

创造者

我希望我的 Visual C# 程序允许用户生成可在另一个用户的计算机上运行的可移植 .exe 文件,portabe .exe 接收第一个用户插入的值。我不想使用配置文件或任何其他文件来存储要读取的输入值,因为我希望 .exe 是单个文件。我将主程序和第二个程序(未来可移植的可执行文件)作为同一解决方案上的不同项目。有没有办法修改可移植 .exe 的值,或者是否需要动态编译新程序?

一般

正式回答问题。

您可以将程序集转换为 IL、搜索和替换并重新编译。但是,如果您正在构建此应用程序,您应该非常彻底地考虑此类应用程序的需求和用例。

如果您只需要修改应用程序的行为,您有很多选择。

  • 注册表(可以远程完成)
  • 一个配置文件(虽然你排除了这个)
  • 您可以使用登录方法访问资源
    • 以 WCF 为例
    • 活动目录
    • 网络数据库
  • 为这些用户重建你的应用
  • Msbuild 用一个批处理文件来调整一些东西
  • 预构建脚本

如果你真的很棘手,你“可能”能够追踪一个 int 的偏移量并调整它。然而这似乎非常不可靠

或者,如果您真的对此深信不疑,请参阅以下和相关问题

在 C# 编译的 exe 中修改嵌入字符串

是否可以在 .NET DLL 中添加/删除/更改嵌入资源?

更新本福格特评论

Win32资源可以在嵌入EXE后更改.NET System.Resources只能在嵌入之前更改。C#应用程序兼容这两种,但区别很重要 必须的函数是UpdateResource

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章