Установите 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.
Посмотрите на документы.