【问题标题】:How to generate exe from winforms application如何从winforms应用程序生成exe
【发布时间】:2012-09-21 00:35:00
【问题描述】:

我想知道如何使用我的 C# winforms 应用程序生成 .exe 文件?

假设用户想通过我的 winforms 应用创建自己的应用。他可以在自己的应用程序中选择将自定义标题、自定义文本放入已创建的标签/文本框等。

我该怎么做?

【问题讨论】:

  • 如果我对您的理解正确,您需要一个生成包含特定信息的 EXE(可执行 WinForm 应用程序)的应用程序。为什么不使用配置文件。一个文本文件,一旦应用程序运行,就会从中读取和加载此类信息。配置文件可以是INI/XML/.properties等
  • 你能解释一下你将如何使用它吗?也许可以使用您想要实现的替代方案?
  • 您是否需要提供对数据库、在线资源等的访问权限?
  • 如果用户只自定义界面,可以将自定义保存到新的app.config中,将exe和app.config都复制到新文件夹中。
  • 我想要的一个例子是 Keygen creator。用户可以选择背景图片,可以添加序列号,为标签选择一些随机文本,标题等等。 PS:希望我的例子没有违反 Stackoverflow 的规则。

标签: c# .net winforms code-generation exe


【解决方案1】:

【讨论】:

    【解决方案2】:

    如果您只需要自定义您的应用程序,用户可以创建一些 xml 文件:

    <title>user title</title>
    <textbox name="customName"></textbox>
    

    您可以阅读此文件并将控件添加到应用程序的某些字段中。

    【讨论】:

      【解决方案3】:

      CSharpCodeProvider 的另一种替代方法是使用System.Reflection.Emit 命名空间中的类,从AppDomain.DefineDynamicAssembly 开始,您可以构造一个程序集,然后可以将其保存到磁盘(使用AssemblyBuilder.Save(string))。

      如果用户只能进行少量自定义,并且事先知道其功能,请使用可以定义各种选项的配置文件。使用ConfigurationManager 编辑其他可执行文件的应用程序配置。

      例如:

      var targetConfig = ConfigurationManager.OpenExeConfiguration("MyOtherApplication.exe");
      var uiOptions = targetConfig.Sections["UIOptions"];
      uiOptions["TitleText"] = _titleTextBox.Text;
      targetConfig.Save();
      

      然后其他应用程序可以使用相同的键读取它:

      var myUIOptions = (ConfigurationSection)ConfigurationManager.GetSection("UIOptions");
      this.Caption = uiOptions["TitleText"] as string;
      

      【讨论】:

        猜你喜欢
        • 2018-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-02
        • 2010-10-22
        • 1970-01-01
        相关资源
        最近更新 更多