0

如何在 C# 中指定安装特定程序的位置?我尝试使用 .WorkingDirectory 但它没有用。我想在桌面的 NotepadFolder 中安装 Notepad++ 安装程序,我该怎么做?

    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{}
}
4

2 回答 2

3

这与编程无关,我投票决定关闭......与此同时......

它是使用 Nullsoft 安装系统 v2.46 编写的。

看看文档

于 2012-08-02T00:59:28.243 回答
1

呜呼!感谢您提供链接,我的代码有效!您只需在参数中添加 /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);
    }
于 2012-08-02T01:50:27.817 回答