Передайте аргументы командной строки в настраиваемое действие WiX

убедитесь, что вы закрыли все свои утверждения и результирующие наборы перед запуском rs.next. Finaly гарантирует это

public boolean flowExists( Integer idStatusPrevious, Integer idStatus, Connection connection ) {
    LogUtil.logRequestMethod();

    PreparedStatement ps = null;
    ResultSet rs = null;
    try {
        ps = connection.prepareStatement( Constants.SCRIPT_SELECT_FIND_FLOW_STATUS_BY_STATUS );
        ps.setInt( 1, idStatusPrevious );
        ps.setInt( 2, idStatus );

        rs = ps.executeQuery();

        Long count = 0L;

        if ( rs != null ) {
            while ( rs.next() ) {
                count = rs.getLong( 1 );
                break;
            }
        }

        LogUtil.logSuccessMethod();

        return count > 0L;
    } catch ( Exception e ) {
        String errorMsg = String
            .format( Constants.ERROR_FINALIZED_METHOD, ( e.getMessage() != null ? e.getMessage() : "" ) );
        LogUtil.logError( errorMsg, e );

        throw new FatalException( errorMsg );
    } finally {
        rs.close();
        ps.close();
    }
2
задан zett42 28 February 2019 в 10:26
поделиться

1 ответ

Основной синтаксис

<Property Id="WixQuietExecCmdLine" Value='"[INSTALLFOLDER]Lifen.exe" --new-version'/> 
  • Вам всегда нужно указывать пути , потому что они могут содержать пробелы.
  • Вам не нужна обратная косая черта после свойств папки , например [INSTALLFOLDER], поскольку среда выполнения MSI гарантирует, что значения всех свойств установочной папки заканчиваются обратной косой чертой.
  • То же самое для аргументов, вам нужно процитировать, если они могут содержать пробелы . Если у вас есть постоянный аргумент, такой как --new-version, где вы точно знаете, что пробелов нет, вам не нужно заключать в кавычки. Для аргументов, которые содержат ссылки на свойства, безопаснее всегда заключать в кавычки. E. g.:

    <Property Id="WixQuietExecCmdLine" Value='"[INSTALLFOLDER]Lifen.exe" "--new-version=[NEWVERSION]"'/> 
    

Если вы сомневаетесь, загляните в подробный журнал , чтобы увидеть, является ли фактическое значение WixQuietExecCmdLine что вы ожидаете Активируйте подробное ведение журнала, позвонив по номеру msiexec -l*v logfile.txt <OtherParameters>.

64-битные исполняемые файлы

Чтобы запустить 64-битные исполняемые файлы, используйте взамен настраиваемое действие WixQuietExec64 и свойство WixQuietExec64CmdLine.

0
ответ дан zett42 28 February 2019 в 10:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: