Рейтинг:
14
0x01AA
Для начала взгляните сюда: командная строка - пользовательская установка Firebird - переполнение стека[^]
Похоже, вам не хватает параметра командной строки /COMPONENTS="список имен компонентов, разделенных запятыми"
Например, для полной установки: /COMPONENTS="ServerComponent\SuperServerComponent,ServerComponent,DevAdminComponent,ClientComponent"
Я надеюсь, что это поможет
[Редактировать]
Для установки в определенный каталог можно использовать параметр командной строки DIR
Например: Firebird-3.0.4.33054_0_Win32.exe /DIR="c:\Temp\FB"
Записи:
1.) после обычной установки вы найдете два документа
"C:\Program файлы (x86)\Firebird\Firebird_3_0\doc\installation_scripted.txt"
"C:\Program файлы (x86)\Firebird\Firebird_3_0\doc\installation_readme.txt"
Особенно installation_scripted.txt содержит полезную информацию
2.) Если вы начинаете Firebird-3.0.4.33054_0_Win32.exe /?
будут показаны стандартные параметры командной строки "ino setup".
Benna Olivier
Это работает для автоматической установки, однако мне нужно установить его и указать другой каталог из каталога по умолчанию, а также я должен выбрать классический вариант сервера при установке
0x01AA
Пожалуйста, смотрите [Edit] в обновленном ответе
Benna Olivier
В каком операторе я смогу указать каталог, который будет использоваться для установки firebird
/Реж="c:\Temp\FB"
0x01AA
В качестве параметра командной строки для fb setup.exe где у вас есть olaso переключатель /SILENT и т. д.
Firebird-2.5x64.exe /реж= "c:\temp\fb"
Benna Olivier
Аргументы, которые я передаю, следующие, однако он не устанавливается в указанный каталог, а также перезапускается после установки Firebird
"/VERYSILENT /SUPPRESSMSGBOXES / DIR @c:\program файлы\firebird\ / NORESTART ServerComponent\ClassicServerComponent, ServerComponent,ClientComponent"
0x01AA
пробовать:
"/VERYSILENT /SUPPRESSMSGBOXES / DIR="c:\program файлы\firebird\" / NORESTART ServerComponent\ClassicServerComponent, ServerComponent,ClientComponent"
Benna Olivier
Не повезло с этим, все равно устанавливается в каталог по умолчанию
0x01AA
Я протестировал его с помощью windows cmd, и он работал идеально, может быть, вам стоит попробовать его также сначала в cmd, прежде чем тестировать с вашим приложением c#. Вы уверены, что ваша строка аргументов верна? Я имею в виду кавычки, необходимые для пути, и обратные косые черты в пути?
Кстати: я тестировал с более или менее последней версией fb: Firebird-2.5.8.27089_0_x64.exe
Benna Olivier
Я попробовал оба из приведенных ниже в CMD
"/VERYSILENT /SUPPRESSMSGBOXES / DIR @c:\program файлы\firebird\ / NORESTART ServerComponent\ClassicServerComponent, ServerComponent,ClientComponent"
"/VERYSILENT /SUPPRESSMSGBOXES / DIR="c:\program файлы\firebird\" / NORESTART ServerComponent\ClassicServerComponent, ServerComponent,ClientComponent"
Ничто из вышеперечисленного не работает в CMD, однако через мое приложение я действительно получаю тихую установку, однако она не устанавливается в указанный каталог
Через CMD они оба открывают окна установщика, чего я не хочу
0x01AA
Это ваш Firebird-2.5x64.exe с 2010 года? Вы пробовали также последнюю версию?
На какой операционной системе вы проводите свои испытания?
0x01AA
Просто проверил его с Firebird-2.5.0.26074_1_x64 с 2010 года на виртуальной машине Win7, и он работает... Убедитесь, что между буквой "/" и параметром нет пробелов.
0x01AA
И, наконец, я попробовал это с консольным приложением c#, которое также отлично работало:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
string installerFilePath = @"C:\Temp\Firebird-2.5.0.26074_1_x64.exe";
string arguments = "/VERYSILENT /SUPPRESSMSGBOXES /DIR=\"c:\\program files\\MyTestFirebird\" /NORESTART ServerComponent\\ClassicServerComponent, ServerComponent,ClientComponent";
ProcessStartInfo psi = new ProcessStartInfo(installerFilePath, arguments);
psi.CreateNoWindow = true;
Process installerProcess = Process.Start(psi);
while (installerProcess.HasExited == false)
{
//indicate progress to user
Console.Write(".");
System.Threading.Thread.Sleep(250);
}
Console.WriteLine("Intsallation done");
}
}
}
0x01AA
Будьте внимательны! Моя строка аргументов выше была неправильной, но она работала. Правильный аргумент должен быть больше похож на этот string arguments = "/VERYSILENT /SUPPRESSMSGBOXES /DIR=\"c:\\program files\\MyTestFirebird\" /NORESTART /COMPONENTS=\"ServerComponent\\ClassicServerComponent, ServerComponent,ClientComponent\"";