Установите EXE и укажите каталог в C#

Как мне указать в C#, где установить конкретную программу? Я пытался использовать.WorkingDirectory, но это не сработало. Я хочу установить установщик Notepad++ внутри NotepadFolder в Desktop, как мне это сделать?

    static void LaunchInstaller()
    {
        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.FileName = @"C:\Users\UserOne\Downloads\npp.6.1.5.Installer.exe";
        startInfo.WorkingDirectory = @"C:\Users\UserOne\Desktop\NotepadFolder";
        //The line above doesn't work. Notepad++ still installs to its current directory, in ProgramFiles
        startInfo.Arguments = "/S";
        Process.Start(startInfo);
    }

Я видел код ниже на dotnetperls.com. Они не указали использование двух строк и их аргументов, поэтому я сейчас запутался:

static void LaunchCommandLineApp()
{
const string ex1 = "C:\\";
const string ex2 = "C:\\Dir";

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = "dcm2jpg.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = "-f j -o \"" + ex1 + "\" -z 1.0 -s y " + ex2;

try
{
    Process exeProcess = Process.Start(startInfo)
    {
    exeProcess.WaitForExit();
    }
}
catch{}
}

2 ответа

Решение

Woohoo! Спасибо за потраченную ссылку, мой код работает! Вам просто нужно добавить /D= ваш установочный каталог в Аргументах.. Вот мой обновленный код:

    static void LaunchInstaller()
    {
        const string installdir = @"C:\Users\UserOne\Desktop\NotepadFolder";

        ProcessStartInfo startInfo = new ProcessStartInfo();
        startInfo.FileName = @"C:\Users\UserOne\Downloads\npp.6.1.5.Installer.exe";
        startInfo.Arguments = "/S /D=" + installdir; //My new code
        Process.Start(startInfo);
    }

Это не совсем связано с программированием, и я голосую за закрытие... А пока...

Он создан с помощью Nullsoft Install System v2.46.

Посмотрите на документы.

Другие вопросы по тегам