如何使用Inno设置修改machine.config?

时间:2011-10-08 00:14:53

标签: installer inno-setup machine.config

如何使用Inno setup修改machine.config?

我查看了文档并搜索了谷歌,找不到任何东西,所以这让我觉得我问的是错误的问题或遗漏了一些明显的问题。

我猜测,如果不明显,则需要编写一个小脚本来完成它。如果是这样的话,有没有人有一个很好的例子?

编辑:machine.config是一个xml格式的文件,用于保存.net应用程序的机器级配置设置。

1 个答案:

答案 0 :(得分:5)

自从我上次使用Inno Setup已经有一段时间了,但我认为你有两种可能性。最好,最简单的是编写一个小的.exe应用程序,安装程序将在安装后运行。卸载完成:

[Files]
Source: "mconfig.exe"; DestDir: "{tmp}"; Flags: deleteafterinstall; 

[Run]
Filename: "{tmp}\mconfig.exe"; Parameters: "/inst"; Flags: waituntilterminated runhidden

[UninstallRun]
Filename: "{tmp}\mconfig.exe"; Parameters: "/uninst"; Flags: waituntilterminated runhidden

现在,我不知道你需要做什么语言/或修改,但是一个简单的c#console-app可以对machine.config进行一些简单的修改,如下所示:

using System;
using System.Configuration; // Note: Also add a reference to "System.Configuration.dll"

public class Program {
    static void Main(string[] args) {
        Configuration config = ConfigurationManager.OpenMachineConfiguration();
        if (args.Length > 0) {
            if (args[0] == "/inst") {
                config.AppSettings.Settings.Add("Test", "Value");
            } else if (args[0] == "/uninst") {
                config.AppSettings.Settings.Remove("Test");
            }
            config.Save();
        }
    }
}

现在,另一种方法是将此作为一个函数编写,在Inno Setup内置的“Pascal脚本”语言中(如果您以前在Turbo / Borland Pascal或Delphi中有过恢复活动的经验) 。自己尝试过之后,我会建议不要这样做,因为它非常有限,但对其他(不那么复杂)的东西可能有好处。

希望这有帮助!