msi: Advance to the right cabinet in ACTION_MsiPublishAssemblies.
This commit is contained in:
parent
8bfc08771c
commit
d17ebc4032
@ -6919,33 +6919,33 @@ static UINT ACTION_MsiPublishAssemblies( MSIPACKAGE *package )
|
|||||||
if (assembly->installed && !mi->is_continuous)
|
if (assembly->installed && !mi->is_continuous)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (assembly->file->Sequence > mi->last_sequence || mi->is_continuous ||
|
if (assembly->file->IsCompressed)
|
||||||
(assembly->file->IsCompressed && !mi->is_extracted))
|
|
||||||
{
|
{
|
||||||
MSICABDATA data;
|
if (assembly->file->disk_id != mi->disk_id || mi->is_continuous)
|
||||||
|
|
||||||
r = ready_media(package, assembly->file, mi);
|
|
||||||
if (r != ERROR_SUCCESS)
|
|
||||||
{
|
{
|
||||||
ERR("Failed to ready media\n");
|
MSICABDATA data;
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
data.mi = mi;
|
r = ready_media(package, assembly->file, mi);
|
||||||
data.package = package;
|
if (r != ERROR_SUCCESS)
|
||||||
data.cb = installassembly_cb;
|
{
|
||||||
data.user = &assemblies;
|
ERR("Failed to ready media\n");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if (assembly->file->IsCompressed &&
|
data.mi = mi;
|
||||||
!msi_cabextract(package, mi, &data))
|
data.package = package;
|
||||||
{
|
data.cb = installassembly_cb;
|
||||||
ERR("Failed to extract cabinet: %s\n", debugstr_w(mi->cabinet));
|
data.user = &assemblies;
|
||||||
r = ERROR_FUNCTION_FAILED;
|
|
||||||
break;
|
if (!msi_cabextract(package, mi, &data))
|
||||||
|
{
|
||||||
|
ERR("Failed to extract cabinet: %s\n", debugstr_w(mi->cabinet));
|
||||||
|
r = ERROR_FUNCTION_FAILED;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
if (!assembly->file->IsCompressed)
|
|
||||||
{
|
{
|
||||||
LPWSTR source = resolve_file_source(package, assembly->file);
|
LPWSTR source = resolve_file_source(package, assembly->file);
|
||||||
|
|
||||||
|
@ -629,12 +629,10 @@ static UINT msi_load_media_info(MSIPACKAGE *package, MSIFILE *file, MSIMEDIAINFO
|
|||||||
static const WCHAR query[] = {
|
static const WCHAR query[] = {
|
||||||
'S','E','L','E','C','T',' ','*',' ', 'F','R','O','M',' ',
|
'S','E','L','E','C','T',' ','*',' ', 'F','R','O','M',' ',
|
||||||
'`','M','e','d','i','a','`',' ','W','H','E','R','E',' ',
|
'`','M','e','d','i','a','`',' ','W','H','E','R','E',' ',
|
||||||
'`','L','a','s','t','S','e','q','u','e','n','c','e','`',' ','>','=',
|
'`','L','a','s','t','S','e','q','u','e','n','c','e','`',' ','>','=',' ','%','i',
|
||||||
' ','%','i',' ','A','N','D',' ','`','D','i','s','k','I','d','`',' ','>','=',
|
' ','O','R','D','E','R',' ','B','Y',' ','`','D','i','s','k','I','d','`',0};
|
||||||
' ','%','i',' ','O','R','D','E','R',' ','B','Y',' ',
|
|
||||||
'`','D','i','s','k','I','d','`',0};
|
|
||||||
|
|
||||||
row = MSI_QueryGetRecord(package->db, query, file->Sequence, mi->disk_id);
|
row = MSI_QueryGetRecord(package->db, query, file->Sequence);
|
||||||
if (!row)
|
if (!row)
|
||||||
{
|
{
|
||||||
TRACE("Unable to query row\n");
|
TRACE("Unable to query row\n");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user