#installation #inno-setup #machine.config
#установка #inno-setup #machine.config
Вопрос:
Как изменить файл machine.config с помощью Inno setup?
Я просмотрел документацию и поискал в Google и ничего не могу найти, поэтому мне кажется, что я задаю неправильный вопрос или упускаю что-то очевидное.
Я предполагаю, что если это не очевидно, то для этого требуется написать небольшой скрипт. Если это так, у кого-нибудь есть хороший пример?
Редактировать: machine.config — это файл в формате xml, используемый для хранения параметров конфигурации на уровне компьютера для приложений .net.
Комментарии:
1. Inno может редактировать любой файл, в который он может записывать. Как зависит от того, как он отформатирован. Не могли бы вы предоставить немного больше информации и пример того, что вы хотите отредактировать.
Ответ №1:
Прошло много времени с тех пор, как я в последний раз использовал 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, который было бы интересно оживить). Однако, попробовав это сам, я бы рекомендовал отказаться от этого, поскольку он довольно ограничен, но может быть полезен для других (менее сложных) вещей.
Надеюсь, это поможет!