我希望我的 Visual C# 程序允许用户生成可在另一个用户的计算机上运行的可移植 .exe 文件,portabe .exe 接收第一个用户插入的值。我不想使用配置文件或任何其他文件来存储要读取的输入值,因为我希望 .exe 是单个文件。我将主程序和第二个程序(未来可移植的可执行文件)作为同一解决方案上的不同项目。有没有办法修改可移植 .exe 的值,或者是否需要动态编译新程序?
正式回答问题。
您可以将程序集转换为 IL、搜索和替换并重新编译。但是,如果您正在构建此应用程序,您应该非常彻底地考虑此类应用程序的需求和用例。
如果您只需要修改应用程序的行为,您有很多选择。
如果你真的很棘手,你“可能”能够追踪一个 int 的偏移量并调整它。然而这似乎非常不可靠
或者,如果您真的对此深信不疑,请参阅以下和相关问题
更新从本福格特评论
Win32资源可以在嵌入EXE后更改。.NET
System.Resources
只能在嵌入之前更改。C#应用程序兼容这两种,但区别很重要 必须的函数是UpdateResource
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句