Это отличная информация. Спасибо. Мы рассмотрим это.

аммное обеспечение:

SQL Server Express 2016Visual Studio 2017

Мы безуспешно пытались установить именованный экземпляр SQL Server Express 2016 в рамках проекта установки VS Installer.

Мы пробовали звонитьInstallNamedInstance() следующим образом с данными результатами:

БегатьSQLEXPR_x64_ENU.exe с теми же аргументами командной строки из окна cmd администратора: УспешноВызовInstallNamedInstance() из консольного приложения и запустите консольное приложение из окна cmd администратора: УспешноУстановить пользовательское действие («Все и только я»): не работаетСобытие BeforeInstall (для всех и только для меня): сбой

Я заметил, что текущий пользователь при запуске MSINT AUTHORITY\SYSTEM, Всякий раз, когда происходит сбой в проекте установщика, происходит сбой с сообщением ниже

Учетная запись, на которой выполняется программа установки SQL Server, не имеет одного или всех из следующих прав: право на резервное копирование файлов и каталогов, право на управление аудитом и журнал безопасности, а также право на отладку программ. Чтобы продолжить, используйте учетную запись с обоими этими правами. Для получения дополнительной информации см.http://msdn.microsoft.com/en-us/library/ms813696.aspx, http://msdn.microsoft.com/en-us/library/ms813959.aspx а такжеhttp://msdn.microsoft.com/en-us/library/ms813847.aspx.

Это ограничение проекта Installer или я что-то упустил? Нам повезет больше с AdvancedInstaller?

Обратите внимание, что предварительное условие для Installer Project не работает для нас, потому что нам нужно создать именованный экземпляр SQL Server Express, и мы не можем увидеть, как мы можем передать аргументы командной строки в предварительные условия.

private void InstallNamedInstance()
{
    // NOTE: Change below instance name to get unique instances (or uninstall previous instance)
    var InstanceName = "TFPICDATABASES2";
    var proc = new Process();
    // NOTE:
    //  1. Download "SQLServer2016-SSEI-Expr.exe" web installer from https://www.microsoft.com/en-us/download/details.aspx?id=54284
    //  2. Run the web installer and choose 3rd option "Download Media". This will give "SQLEXPR_x64_ENU.exe"
    proc.StartInfo.FileName = @"c:\temp\sql\SQLEXPR_x64_ENU.exe ";
    proc.StartInfo.Arguments = " /Action=Install";
    proc.StartInfo.Arguments += $" /INSTANCEID={InstanceName}";
    proc.StartInfo.Arguments += $" /InstanceName={InstanceName}";
    proc.StartInfo.Arguments += " /ROLE=AllFeatures_WithDefaults";
    proc.StartInfo.Arguments += " /QS";
    proc.StartInfo.Arguments += " /INDICATEPROGRESS=True";
    proc.StartInfo.Arguments += " /IAcceptSQLServerLicenseTerms=True";
    proc.StartInfo.WorkingDirectory = @"c:\temp\sql";

    WriteLog($"FielName: {proc.StartInfo.FileName}; Arguments: {proc.StartInfo.Arguments}; WorkingDir: {proc.StartInfo.WorkingDirectory}");

    proc.StartInfo.UseShellExecute = false;
    proc.OutputDataReceived += (s, e) => WriteLog($"Info: {e.Data}");
    proc.ErrorDataReceived += (s, e) => WriteLog($"Error: {e.Data}");

    var ok = proc.Start();
    // NOTE: Log files are in C:\Program Files\Microsoft SQL Server\130\Setup Bootstrap\Log
    // Summary.txt gives log of latest installer run. It also creates one folder for each installer attempt
    // and gathers more detailed logs in those folders.
    proc.WaitForExit();
    WriteLog($"{proc.StartInfo.FileName} exited with {proc.ExitCode}");
    if (proc.ExitCode != 0)
    {
        throw new Exception($"SQL Server Express installation failed. Check log file for more details");
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос