Как вы модифицируете machine.config, используя настройки Inno? - PullRequest
4 голосов
/ 08 октября 2011

Как вы изменяете machine.config, используя Inno setup?

Я просмотрел документацию и искал в Google, но ничего не могу найти, поэтому у меня возникает ощущение, будто я задаю неправильный вопрос илиупускает что-то очевидное.

Я предполагаю, что если это не очевидно, то для этого требуется написать небольшой скрипт.Если это так, у кого-нибудь есть хороший пример?

Редактировать: machine.config - это файл в формате xml, используемый для хранения параметров конфигурации на уровне компьютера для приложений .net.

1 Ответ

5 голосов
/ 14 октября 2011

Прошло много времени с тех пор, как я последний раз использовал 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 #, которое делает простую модификацию 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 scripting» (если у вас есть предыдущий опыт работы с Turbo / Borland Pascal или Delphi, который может быть интересно оживить).Попробовав это сам, я бы порекомендовал против этого, поскольку он довольно ограничен, но может быть полезен для других (менее сложных) вещей.

Надеюсь, это поможет!

...