Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 生成具有预定义设置的exe_C#_.net_Vb.net - Fatal编程技术网

C# 生成具有预定义设置的exe

C# 生成具有预定义设置的exe,c#,.net,vb.net,C#,.net,Vb.net,如果我在标题中问得不对,我表示歉意。。我不知道该怎么问,也不知道我需要什么 - 假设我有一个名为“TestApp”的简单应用程序,它是用C#编写的 在该应用程序中,我有以下变量: int clientid = 123; string apiurl = "http://somesite/TestApp/api.php"; 当我有一个新客户机时,我需要为他创建一个新的特殊TestApp.exe,更改代码中的'clientid'变量 有可能使这个过程自动化吗?要自动更改该变量并导出exe而不让我干扰

如果我在标题中问得不对,我表示歉意。。我不知道该怎么问,也不知道我需要什么

- 假设我有一个名为“TestApp”的简单应用程序,它是用C#编写的

在该应用程序中,我有以下变量:

int clientid = 123;
string apiurl = "http://somesite/TestApp/api.php";
当我有一个新客户机时,我需要为他创建一个新的特殊TestApp.exe,更改代码中的'clientid'变量

有可能使这个过程自动化吗?要自动更改该变量并导出exe而不让我干扰该过程

-

我之所以问这个问题,是因为我认为/或者我确信这是可能的,因为下一个流行的例子:

  • [它创建了一个特殊的.exe,带有从何处下载真实文件的预定义链接]
  • [它将.torrent文件嵌入到一个特殊的.exe中,只需更改一些自定义变量,如torrent名称或下载大小]

再次,如果我问的问题不正确,并且我的英语很差,我会尽力道歉。

所以你的问题有两个部分:

  • 您希望程序中包含基于应用程序客户端的变量
  • 您希望自动执行设置更改的过程

  • 要进行自定义设置:

    使用
    AppSettings

    首先,添加对
    System.Configuration
    assembly的引用

    在app.config文件中:

    <configuration>
      <appSettings>
        <add key="ClientID" value="123" />
        <add key="ApiUrl" value="http://somesite/TestApp/api.php" />
      </appSettings>
    </configuration>
    


    自动创建设置:

    这一切都取决于你想变得多复杂

    • 构建项目时,您的
      app.config
      文件将变为
      TestApp.exe.config
    • 您可以使用
      ConfigurationManager
      类来编写配置文件
    • 此外,您还可以编写一个小Exe,用自定义设置写入配置文件,并将其作为构建操作的一部分执行。许多实现自动化的方法取决于您打算如何部署应用程序
    以编程方式编写app.config文件appSettings节的一个快速示例:

    public static void CreateOtherAppSettings()
    {
        Configuration config =
            ConfigurationManager.OpenExeConfiguration("OtherApp.config");
    
        config.AppSettings.Settings.Add("ClientID", "456");
        config.AppSettings.Settings.Add("ApiUrl", "http://some.other.api/url");
    
        config.Save(ConfigurationSaveMode.Modified);
    }
    

    谢谢你的快速回答。但实际上我该如何部署应用程序呢?因为它是一个独立的.exe,所以有可能自动将user.config嵌入到exe中?您不需要将其嵌入到exe中,它始终是一个单独的配置文件。您可以为每个部署生成配置文件,我已经更新了答案,正在编写一个示例。@user3280998:请参阅更新的答案和示例。这应该给您足够的时间来运行它,并找出如何最好地生成配置。我不知道你的项目是否更具体,但我已经为你列出了几个选项和例子。谢谢!这对我帮助很大,你真是太棒了,大卫!
    public static void CreateOtherAppSettings()
    {
        Configuration config =
            ConfigurationManager.OpenExeConfiguration("OtherApp.config");
    
        config.AppSettings.Settings.Add("ClientID", "456");
        config.AppSettings.Settings.Add("ApiUrl", "http://some.other.api/url");
    
        config.Save(ConfigurationSaveMode.Modified);
    }