http://bugs.winehq.org/show_bug.cgi?id=7098
--- Comment #15 from Anastasius Focht focht@gmx.net 2009-01-27 01:57:43 --- Hello,
revisiting ... The affected assemblies are already extracted/copied from temporarily written cab files into "C:\windows\Microsoft.NET\Framework\v1.1.4322\GAC\" before the MsiPublishAssemblies stage. This looks like a temporary GAC location until it comes to MsiPublishAssemblies.
In MsiPublishAssemblies most of the assemblies are temp extracted from primary cab "netfx1.cab" and directly installed into system GAC. Unfortunately the assemblies from previous install step which are also members of MsiAssembly table have their assembly->file->IsCompressed set and hence the install_assembly() stage is skipped.
I resolved the source of these assemblies to their original target location "C:\windows\Microsoft.NET\Framework\v1.1.4322\GAC\" and made them valid install_assembly() targets. For these assemblies the original target must be removed after this step. It seems useless to keep them in "C:\windows\Microsoft.NET\Framework\v1.1.4322\GAC\" - they will never be visible as GAC assemblies from this (temp) location.
With ACTION_MsiPublishAssemblies properly fixed, all assemblies get correctly installed into system wide GAC (added additional trace msg to track the state)
--- snip --- ... 0024:trace:msi:msi_check_file_install_states file L"Microsoft_VisualBasic_dll_3_____X86.3643236F_FC70_11D3_A536_0090278A1BB8" is named L"Microsoft.VisualBasic.dll" 0024:trace:msi:msi_check_file_install_states file L"Microsoft_VisualBasic_dll_3_____X86.3643236F_FC70_11D3_A536_0090278A1BB8" resolves to L"C:\windows\Microsoft.NET\Framework\URTInstallPath\GAC\Microsoft.VisualBasic.dll" 0024:trace:msi:resolve_folder Working to resolve L"URTInstallPath.3643236F_FC70_11D3_A536_0090278A1BB8" 0024:trace:msi:resolve_folder already resolved to L"C:\windows\Microsoft.NET\Framework\URTInstallPath\" ... 0024:trace:msi:ACTION_MsiPublishAssemblies L"Microsoft_VisualBasic_dll_3_____X86.3643236F_FC70_11D3_A536_0090278A1BB8" assembly->installed: 0 0024:trace:msi:ACTION_MsiPublishAssemblies L"Microsoft_VisualBasic_dll_3_____X86.3643236F_FC70_11D3_A536_0090278A1BB8" assembly->file->IsCompressed: 1 0024:trace:msi:resolve_file_source Working to resolve source of file L"Microsoft_VisualBasic_dll_3_____X86.3643236F_FC70_11D3_A536_0090278A1BB8" 0024:trace:msi:resolve_folder Working to resolve L"GAC.3643236F_FC70_11D3_A536_0090278A1BB8" 0024:trace:msi:resolve_folder already resolved to L"C:\windows\Microsoft.NET\Framework\v1.1.4322\GAC\" 0024:trace:msi:install_assembly installing assembly: L"C:\windows\Microsoft.NET\Framework\v1.1.4322\GAC\Microsoft.VisualBasic.dll" 0024:fixme:msi:install_assembly Manifest unhandled ... --- snip ---
The app which uses the VB.NET assembly then starts and runs successfully - with native gdiplus and riched20 overrides to work around other insufficiencies.
Regards