Как использовать пользовательскую папку загрузок и путь к исполняемому файлу программы запуска? - PullRequest
0 голосов
/ 31 мая 2018

Я хочу скачать Chromium по определенному пути.Но чтобы затем запустить Chromium с использованием исполняемого файла по тому же пути, мне нужно создать путь к исполняемому файлу, и это выглядит немного неуклюже.Я надеюсь, что есть лучший способ, которым я в настоящее время скучаю.Вот соответствующая версия моего кода в основном:

string chromiumDownloadsPath =
    String.Format(
        @"{0}\Puppeteer Sharp downloads",
        baseDirectoryPath
        );

Downloader downloader = new Downloader(chromiumDownloadsPath);
await downloader.DownloadRevisionAsync(chromiumRevision);

var browser = await Puppeteer.LaunchAsync(
    new LaunchOptions
    {
        Headless = true,
        ExecutablePath =
            String.Format(
                @"{0}\Win32-{1}\chrome-win32\chrome.exe",
                chromiumDownloadsPath,
                chromiumRevision
                )
    },
    chromiumRevision
    );

Что, в частности, кажется неуклюжим, так это добавление части пути "\Win32-{1}\chrome-win32".Я ожидал, что Puppeteer.LaunchAsync "узнает", как найти исполняемый файл по номеру ревизии, потому что он "должен" уже "знать", что я дал указание Puppeteer Sharp загрузить сборки Chromium в пользовательский каталог, и я думаю, что он имеетдостаточно информации, чтобы определить платформу.

1 Ответ

0 голосов
/ 31 мая 2018

Класс Downloader содержит метод public string GetExecutablePath(int revision), который делает именно то, что я ожидал, возможно.Таким образом, свойство ExecutablePath объекта LaunchOptions должно быть просто:

        ExecutablePath = downloader.GetExecutablePath(chromiumRevision)
...