C# 如何更改.exe文件的变量?
我希望我的Visual C#程序允许用户生成一个可移植的.exe文件,在另一个用户的计算机上运行,portabe.exe接收第一个用户插入的值。我不想使用配置文件或任何其他文件来存储输入值,然后再读取,因为我希望.exe是单个文件。我有主程序和第二个程序(未来的可移植可执行文件)C# 如何更改.exe文件的变量?,c#,.net,visual-studio,exe,C#,.net,Visual Studio,Exe,我希望我的Visual C#程序允许用户生成一个可移植的.exe文件,在另一个用户的计算机上运行,portabe.exe接收第一个用户插入的值。我不想使用配置文件或任何其他文件来存储输入值,然后再读取,因为我希望.exe是单个文件。我有主程序和第二个程序(未来的可移植可执行文件) 作为同一解决方案上的不同项目。有没有办法修改portable.exe的值,或者需要动态编译新程序?正式回答这个问题 您可以将程序集转换为IL、搜索、替换和重新编译。但是,如果你正在构建这个应用程序,你应该认真地考虑它的
作为同一解决方案上的不同项目。有没有办法修改portable.exe的值,或者需要动态编译新程序?正式回答这个问题 您可以将程序集转换为IL、搜索、替换和重新编译。但是,如果你正在构建这个应用程序,你应该认真地考虑它的需要和用例。 如果您只需要修改应用程序的行为,那么您有很多选择
- 注册表(可远程完成)
- 配置文件(尽管您排除了这一点)
- 您可以使用登录方法访问资源
- 比如Wcf
- 活动目录
- 网络数据库
- 为这些用户重建应用程序
- Msbuild使用批处理文件来调整某些内容
- 预构建脚本
System.Resources
只能在嵌入之前更改。C#应用程序
两者都兼容,但区别非常重要
必要的功能是
正式回答这个问题 您可以将程序集转换为IL、搜索、替换和重新编译。但是,如果你正在构建这个应用程序,你应该认真地考虑它的需要和用例。 如果您只需要修改应用程序的行为,那么您有很多选择
- 注册表(可远程完成)
- 配置文件(尽管您排除了这一点)
- 您可以使用登录方法访问资源
- 比如Wcf
- 活动目录
- 网络数据库
- 为这些用户重建应用程序
- Msbuild使用批处理文件来调整某些内容
- 预构建脚本
System.Resources
只能在嵌入之前更改。C#应用程序
两者都兼容,但区别非常重要
必要的功能是
通常,您可以在不中断的情况下附加到
.exe
,然后在执行时读取数据
请参阅:您通常可以在不中断
.exe的情况下将其附加到.exe,然后在执行时读取数据
请参阅:您可以嵌入资源,然后在不重新编译的情况下对其进行更改。在进一步研究之后,我应该澄清——Win32资源可以在嵌入EXE后进行更改。NETSystem.Resources
只能在嵌入之前更改。C语言的应用程序与这两种应用程序兼容,但区别非常重要。必要的功能是C++示例:“非常感谢您的详细和完整的答案!您可以嵌入资源,然后在不重新编译的情况下对其进行更改。在进一步研究之后,我应该澄清——Win32资源可以在嵌入EXE后进行更改。NETSystem.Resources
只能在嵌入之前更改。C语言的应用程序与这两种应用程序兼容,但区别非常重要。必要的功能是C++示例:“非常感谢您的详细和完整的答案!是的,无论是使用Win32资源函数还是使用自己的资源函数都是完全可行的。(Win32 Resource函数为您提供了一个目录/目录,因此可以按名称读取和写入资源…但使用现有方案也意味着您的数据可以通过现有工具找到)是的,使用为此目的而创建的Win32 Resource函数和滚动您自己的函数都是完全可行的。(Win32资源函数为您提供了一个目录/目录,因此可以按名称读取和写入资源…但使用现有方案也意味着您的数据可以通过现有工具找到)我不完全确定您在寻找什么,但是在没有配置文件的情况下将值传递给.exe可以通过在命令行参数中传递值来完成。@Amit合理的解决方案。。。动态重新编译exe的所有娱乐价值或内存中的黑客价值在哪里:)@Kreator会有帮助吗?请向上投票选择命令行参数和快捷方式。@Kreator仅供参考,如果您的portable.exe确实有权从web读取数据(从特定URL)您可以随时更新该URL上的值,这样您的portable.exe将在不重新编译的情况下获得更改的值!我不是100%确定您在寻找什么,但是在没有配置文件的情况下将值传递给.exe可以通过在命令行参数中传递值来完成。@Amit-sensible-solutions。。。动态重新编译exe的所有娱乐价值或内存中的黑客价值在哪里:)@Kreator会有帮助吗?请向上投票选择命令行参数和快捷方式。@Kreator仅供参考,如果您的portable.exe确实有权从web读取数据(从特定URL)您可以随时更新该URL上的值,这样您的portable.exe将在不重新编译的情况下获得更改的值