Andrew
Thank you for your very detailed reply. I really appreciate the effort you
went to in explaining the problem to me.
I get a very similar error trying to instal Apple iTunes updates now (they
used to instal OK). In this case, I get the HRESULT 0x8007054F. The event
log for the C++ Redistributable package vcredist_x86.exe says:
'Product: Microsoft Visual C++ 2005 Redistributable -- Error 1935.An error
occurred during the installation of assembly
'Microsoft.VC80.ATL,type="win32",version="8.0.50727.762",publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="x86"'.
Please refer to Help and Support for more information. HRESULT: 0x8007054F.
assembly interface: IAssemblyCacheItem, function: Commit, component:
{97F81AF1-0E47-DC99-A01F-C8B3B9A1E18E}'
The HRESULT is exactly the same as in the case of iTunes instal, i.e.
HRESULT: 0x8007054F.
I have tried sxstrace.exe, but I got no alphanumeric output when I saved it
to a text file, so it gave me no help. Maybe I should try it again and wait
a lot longer time for it to complete?
There are 2 versions of ATL80.DLL installed on my Vista computer dated
03-Apr-07 and 12-Jul-07, located in folders
C:\Windows\winsxs\x86_microsoft.vc80.atl_1fc8b3b9a1e18e3b_8.0.50727.42_none_dc990e4797f81af1,
and
C:\Windows\winsxs\x86_microsoft.vc80.atl_1fc8b3b9a1e18e3b_8.0.50727.762_none_11ecb0ab9b2caf3c, respectively.
Thanks for your assistance- maybe you could comment on the above information
for me.
Wfeg
:
Hi Wfeg,
Did you see an HRESULT in the error message? (usually comes after the
"Please refer to Help and Support for more information", will be a number
like 0x800736FD)
In broad terms, the VCRedist_x86.exe package is supported on Vista and
should install without error. So, your vendor is basically correct. However,
it is having trouble installing on this particular machine (or machines).
The "1935" is a standard MSI installer error. These error messages are
documented here:
http://msdn2.microsoft.com/en-us/library/aa372835.aspx
Error 1935 is "An error occurred during the installation of assembly '[6]'.
Please refer to Help and Support for more information. HRESULT: [3].
{{assembly interface: [4], function: [5], component: [2]}}"
MSI running on Windows Vista and Windows XP can install "side-by-side"
assemblies. Assemblies can be COM components, or Win32 DLLs. The concept
behind Side-by-side assemblies is that several versions of the same DLL can
exist on the system at the same time, "side by side". In the past , updating
shared DLLs with newer versions caused many application errors and lead to
the so-called "DLL Hell". With Side-by-Side, each app gets the version of
the shared DLL it likes best. These Side-by-Side files are stored under
C:\Windows\winsxs ("SxS" is the common abbreviation for Side-by-Side).
The problem you're seeing is that the VC Redist package is trying to install
the Active Template Library version 8.0 DLL (ATL80.DLL) into the
Side-by-Side Assembly cache (C:\Windows\winsxs). For some reason, it cannot
do so. The exact reason will probably be indicated by the HRESULT. If you
don't see an HRESULT in the visible error message, look in the Windows Event
Log (under Administrative Tools) for events with a source of "SideBySide" -
these might shed more light on the exact nature of the error.
In Vista, there is a diagnostic tool for troubleshooting Side-by-Side
errors, called sxstrace. This might also shed some light on the problem. To
use sxstrace:
- open a command prompt as Administrator and cd to a scratch directory
- start tracing running, with a log file you specify:
C:\TEMP>sxstrace trace -logfile:myvctrace.etl
- run VCRedist_x86.exe and observe the point of failure (error message);
- alt-tab back to Command Prompt and stop tracing:
C:\TEMP>sxstrace stoptrace
The myvctrace.etl file is a binary file, in Event Tracing for Windows (ETW)
format ("etl" extension = event trace log). You need to run it through a
parse command to turn it into readable text:
C:\TEMP>sxstrace parse -logfile:myvctrace.etl -outfile:myvctrace.txt
Now open myvctrace.txt in Notepad or other text editor, and see what it
says. I have to give a caveat here: sxstrace is good for detecting problems
when an application cannot locate a side-by-side assembly, such as if there
is a missing DLL. I don't know how well it works for problems *installing* a
DLL into the cache, rather than accessing the DLLs from an application. But
it's definitely worth a shot.
The other thing you'd want to check is what versions of ATL80.DLL are
already installed, under C:\Windows\winsxs. Many applications will want to
install ATL80.DLL; so it is quite possible the version the Redist is trying
to install is already on the system. The problem could be that it cannot
overwrite the existing files. This would only apply if they have the same
Public Key token - versions of ATL80.DLL with a different token should not
be a problem (I think).
Other folks might have extra ideas for you ... hope this helps a bit. Good
luck!