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

时间:2018-04-06 01:49:28

标签: c# .net visual-studio exe

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

2 个答案:

答案 0 :(得分:2)

正式回答这个问题。

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

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

  • 注册表(可以远程完成)
  • 配置文件(虽然你排除了这个)
  • 您可以使用登录方法来获取资源
    • Wcf例如
    • Active Directory
    • 网络数据库
  • 为这些用户重建应用
  • 带有批处理文件的Msbuild来调整内容
  • 预构建脚本

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

或者,如果您真的对此有所了解,请参阅以下相关问题

Modify Emdeded String in C# compiled exe

Is it possible to Add/Remove/Change an embedded resource in .NET DLL?

来自 Ben Voigt 评论

更新

  

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

答案 1 :(得分:0)

您通常可以附加到.exe而不会破坏它,然后在执行时读取数据。

请参阅:appending data to an exe

相关问题