VS 2005 setup fails with 1935 or 2908 error


I have heard from a couple of customers who have tried to install the final release of Visual Studio 2005 or one of the Express Editions and have gotten 1935 (or 2908) errors with HRESULT values of 0x8002802F, and then setup failed and rolled back.  The cases I have seen so far have had the same root cause as the problem I described in this previous blog post.

In the cases I have seen for this problem in the final release of VS 2005, the machines had the .NET Framework 1.1 installed, and the version of %windir%\system32\mscoree.dll was 1.1.4322.573 or 1.1.4322.2032.  When VS setup tried to install assemblies to the GAC, it failed because Windows Installer tried to call into a 2.0-specific API from mscoree.dll (needed because there are new processor architecture attributes on VS 2005 assemblies that only 2.0 knows about).  Since the version of mscoree.dll on the system was 1.1, these API calls failed.  This issue is described in more detail in my 1935 troubleshooting guide if you are interested.


The underlying problem was that VS setup detected that the .NET Framework 2.0 was already installed and skipped that prerequisite step.  However, the machine did not actually have the .NET Framework 2.0 installed, but instead only had the registry key that VS setup uses to detect whether or not the .NET Framework 2.0 is installed.  I found that the machines had the following orphaned registry key/value that VS setup uses to determine that .NET Framework 2.0 was already installed:



  • Key name: HKLM\Software\Microsoft\NET Framework Setup\NDP\v2.0.50727
  • Value name: MSI
  • Data type: REG_DWORD
  • Value data: 1

Once the customers deleted this key/value and re-ran VS 2005 setup, it detected that it needed to install the .NET Framework 2.0, and after installing that, VS setup worked perfectly.


As a side note if you’re really interested, you could use some of the setup reverse engineering tricks that I describe here to determine the exact location of this registry key.  In this case, the key/value are listed in the [gencomp18] section of the file named baseline.dat in the setup subdirectory of the VS 2005 DVD or in the self-extracting setup package for the Express Editions.


 

Comments (35)

  1. Chleon Seth says:

    Well..thanks anyway I tried hard for about 6-7 hours to install Visual Studio. İ sepped towards many but at last I opened regedit and teleted the key of HKLMSoftwareMicrosoftNET Framework SetupNDP v2.0XXXXX and it assumed that there hasnt been a net framework package at teh system and started to install that first and now it is just about to finish.

    the error was about the procedurecallentrypoint at mscoree.dll

  2. ilya says:

    …and what if .net framework 2.0 is successfully installed and you still get the 2908 error (installing Document Explorer 2005)?

  3. astebner says:

    Hi Ilya – can you please locate any files named %temp%dd_dexplore80msi*.txt on your system and zip and send them to me so I can take a look and see if I can figure out why you are hitting this error? You can send it to aaronste@microsoft.com.

  4. sarah soft says:

    I’ve been trying to install Visual Basic 2005 Express Edition on my machine, but i got the followin error 0xc000000d when it is starting the installation

  5. astebner says:

    Hi Sarah – Do you see any log files being created in %temp% when this happens on your system?  You can find a list of the possible log files at http://blogs.msdn.com/astebner/articles/447012.aspx.

  6. A while ago, I posted an item regarding a possible cause and resolution for 1935 or 2908 errors during…

  7. Tom says:

    I have a problem, I launched Visual Studio 2005 one day with one big problem: it gave me a message box saying "Unknown Error" – How bad is that? So i uninstalled everything, and Document Explorer 2005 and VS.NET 2005 have been giving me those errors during install and uninstall and they simply do not work.

  8. astebner says:

    Hi Tom – I have heard of this "unknown error" message before but I’m not sure I know of a single root cause that you could check for on your system.  You may want to search for suggestions on the MSDN Forums (http://forums.microsoft.com).  In the worst case, you could try to use the steps listed at http://blogs.msdn.com/astebner/archive/2005/12/16/504906.aspx to manually clean off all of VS 2005 and attempt to reinstall it and see if that helps.

  9. AaronHughes says:

    Okay ill admit it doesnt take much but im confused again. okay si im installing VB express and the .net framwork comes with the package, well it doesnt install with the errors 2908 several of them. Im a n00beeeeee in all thing registry so really i sont want to go pocking round i know enough not to do that he he. Okay so could you email me like the possible problems Hughesaar@gmail.com. please help its driving me mad…………

  10. astebner says:

    Hi AaronHughes – Can you please try to use the .NET Framework 2.0 cleanup tool described at http://blogs.msdn.com/astebner/archive/2006/05/30/611355.aspx and then try to install VB 2005 Express again and see if that helps solve this issue on your system?

  11. Where to get Visual Studio 2005 and the .NET Framework 2.0 Where to download the .NET Framework 2.0 redistributable

  12. JimSelf says:

    hi.. i tryied to inst. VS2005/2008 .net2.0/3.5

    but everytime i get the 1935 because of .net2.0

    tryied the most of tips of troubleshouting..

    nothing works.. please help.. thx

    Produkt: Microsoft Visual C++ 2005 Redistributable — Error 1935.Während der Installation der Assembly "Microsoft.VC80.ATL,type="win32",version="8.0.50727.762",publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="x86"" ist ein Fehler aufgetreten. Weitere Informationen finden Sie unter Hilfe und Support. HRESULT: 0x8007054F, Assemblyschnittstelle: IAssemblyCacheItem, Funktion: Commit, Komponente: {97F81AF1-0E47-DC99-A01F-C8B3B9A1E18E}

  13. astebner says:

    Hi JimSelf – I’m sorry for the hassle that this issue is causing for you.  This error is coming from a Win32 assembly, not a .NET assembly, so I’m not sure this is related to the .NET Framework 2.0.  Unfortunately, the error code 0x8007054F is a generic error that means "an internal error occurred."

    If this is a Windows Vista system, this type of error will result in a more detailed error message being logged to the file c:windowslogscbscbs.log.  It might help to search for this error code in this cbs.log file and see if it helps narrow down the root cause further.

  14. V!ctor says:

    <code>MSI (s) (2C:D0) [16:50:38:558]: Executing op: AssemblyCopy(SourceName=z9qi6zyr.zqi|x86_Microsoft.VC80.OpenMP_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6c18549a.manifest,SourceCabKey=ul_manifest.1E507087_0819_45E0_FF1F_C8B3B9A1E18E,DestName=x86_Microsoft.VC80.OpenMP_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6c18549a.manifest,Attributes=16384,FileSize=468,PerTick=32768,,VerifyMedia=1,ElevateFlags=4,,,,ComponentId={1E507087-0819-45E0-A01F-C8B3B9A1E18E},IsManifest=1,,,AssemblyMode=0,)

    MSI (s) (2C:D0) [16:50:38:558]: Assembly Error:The system cannot find the path specified.</code>

    This happens on vista sp1 machine with all relevant updates and office 2007, and i really hate the idea of reinstalling. Any advice, 10x?

  15. astebner says:

    Hi V!ctor – This Microsoft.VC80.OpenMP assembly is a Win32 assembly.  On Windows Vista, Windows Installer uses the same APIs used to install OS hotfixes to install Win32 assemblies.  There should be more detailed error information for this issue in the log file named c:WindowsLogsCBSCBS.log on your system. I’d suggest looking there first to see what additional information is in that log.

    Also, is offering free support for Vista SP1 installation issues via the web site at https://support.microsoft.com/oas/default.aspx?ln=en-us&prid=11274&gprid=500921, so it might be worth contacting the Vista SP1 support team via that site for more in-depth troubleshooting assistance.

  16. V!ctor says:

    Hi Aaron, and thanks for reply, though i expected there’s some easy solution to this. I actually have detailed log since i’ve extracted vcredist.msi from vcredist_x86 package and ran it with with these switches: "msiexec /i vcredist.msi /l*xv vcredist.log", which resulted in 1.9mB logfile, also did so on my xp sp2 laptop, which successfully installed there and generated 5mB log. The most noticeable difference between these logs though is that in 2nd log there’s no "AssemblyCopy(SourceName=z9qi6zyr.zqi|…" string, it executes an opcode as this: "Executing op: FileCopy(SourceName=x9qi6zyr.zqi|…" instead. Ah and btw, it’s not a vista sp1 installation actually. I’m just trying to install vc 2005. And yes, i tried all steps you suggesting in your guide concerning error 1935. Sorry i didn’t make it clearer before.

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    MSI (s) (2C:D0) [16:50:40:736]: Product: Microsoft Visual C++ 2005 Redistributable — Error 1935.An error occurred during the installation of assembly ‘Microsoft.VC80.OpenMP,type="win32",version="8.0.50727.762",publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="x86"’. Please refer to Help and Support for more information. HRESULT: 0x80070003. assembly interface: IAssemblyCache, function: CreateAssemblyCacheItem, component: {1E507087-0819-45E0-A01F-C8B3B9A1E18E}

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    In the meantime i’ll try SP1 support with your link for what it worth…

  17. astebner says:

    Hi V!ctor – The differences you describe between the log file on Windows Vista nad Windows XP are expected in this case – The VC runtime Win32 assemblies are installed on Windows XP using entries in the MSI file table (which results in FileCopy actions in the log) but are installed using the MsiAssembly and MsiAssemblyName tables on Windows Vista (which result in AssemblyCopy actions in the log).

    The 1935 errors guide that I posted on my blog was written before Windows Vista existed, so it doesn’t cover this specific scenario.  I still suggest looking for more detailed error information for this issue in the log file named c:WindowsLogsCBSCBS.log on your system if you haven’t already.

  18. V!ctor says:

    Hi, Aaron.

    That’s what is in cbs.log:

    2008-04-02 01:33:47, Info                  CBS    Loaded Servicing Stack v6.0.6001.18000 with Core: C:Windowswinsxsx86_microsoft-windows-servicingstack_31bf3856ad364e35_6.0.6001.18000_none_095f6148c74a7a64cbscore.dll

    2008-04-02 01:33:47, Info                  CSI    00000001@2008/4/1:22:33:47.416 WcpInitialize (wcp.dll version 0.0.0.5) called (stack @0x678c8504 @0x6b7a8439 @0x6b7862a3 @0xfd1392 @0xfd1ed4 @0xfd17cb)

    2008-04-02 01:33:47, Info                  CSI    00000002@2008/4/1:22:33:47.422 WcpInitialize (wcp.dll version 0.0.0.5) called (stack @0x678c8504 @0x6b7de615 @0x6b7c0dec @0xfd1392 @0xfd1ed4 @0xfd17cb)

    2008-04-02 01:33:47, Info                  CSI    00000003@2008/4/1:22:33:47.423 WcpInitialize (wcp.dll version 0.0.0.5) called (stack @0x678c8504 @0x70271a0d @0x70271794 @0xfd360b @0xfd2be3 @0xfd17cb)

    2008-04-02 01:33:47, Info                  CBS    NonStart: Checking to ensure startup processing was not required.

    2008-04-02 01:33:47, Info                  CSI    00000004 IAdvancedInstallerAwareStore_ResolvePendingTransactions (call 1) (flags = 00000004, progress = NULL, phase = 0, pdwDisposition = @0xbcfde0

    2008-04-02 01:33:47, Info                  CBS    NonStart: Success, startup processing not required as expected.

    2008-04-02 01:33:47, Info                  SXS    Uninstall Assembly: policy.8.0.Microsoft.VC80.OpenMP,type="win32-policy",version="8.0.50727.762",publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="x86"

    2008-04-02 01:33:47, Info                  SXS    Submitting uninstall transaction

    2008-04-02 01:33:47, Info                  CSI    00000005 Performing 1 operations; 1 are not lock/unlock and follow:

     Uninstall (6): flags: 1 tlc: [policy.8.0.Microsoft.VC80.OpenMP, Version = 8.0.50727.762, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope neutral, PublicKeyToken = {l:8 b:1fc8b3b9a1e18e3b}, Type = [l:24{12}]"win32-policy", TypeName neutral, PublicKey neutral]) ref: ( flgs: 00000000 guid: {27dec61e-b43c-4ac8-88db-e209a8242d90} name: [l:0]"" ncdata: [l:0]"")

    2008-04-02 01:33:47, Info                  CSI    00000006 Call to uninstall failed, the TLC is not currently installed by that installer

    2008-04-02 01:33:47, Info                  CSI    00000007 Component change list:

    2008-04-02 01:33:47, Info                  CSI    00000008 Creating NT transaction (seq 1), objectname [6]"(null)"

    2008-04-02 01:33:47, Info                  CSI    00000009 Created NT transaction (seq 1) result 0x00000000, handle @0x24c

    2008-04-02 01:33:47, Info                  CSI    0000000a@2008/4/1:22:33:47.466 CSI perf trace:

    CSIPERF:TXCOMMIT;6929

    2008-04-02 01:33:47, Info                  CSI    0000000b Creating NT transaction (seq 2), objectname [6]"(null)"

    2008-04-02 01:33:47, Info                  CSI    0000000c Created NT transaction (seq 2) result 0x00000000, handle @0x240

    2008-04-02 01:33:47, Info                  CSI    0000000d@2008/4/1:22:33:47.472 CSI perf trace:

    CSIPERF:TXCOMMIT;4339

    2008-04-02 01:33:47, Info                  SXS    Uninstall Assembly: Microsoft.VC80.OpenMP,type="win32",version="8.0.50727.762",publicKeyToken="1fc8b3b9a1e18e3b",processorArchitecture="x86"

    2008-04-02 01:33:47, Info                  SXS    Submitting uninstall transaction

    2008-04-02 01:33:47, Info                  CSI    0000000e Performing 1 operations; 1 are not lock/unlock and follow:

     Uninstall (6): flags: 1 tlc: [Microsoft.VC80.OpenMP, Version = 8.0.50727.762, pA = PROCESSOR_ARCHITECTURE_INTEL (0), Culture neutral, VersionScope neutral, PublicKeyToken = {l:8 b:1fc8b3b9a1e18e3b}, Type = [l:10{5}]"win32", TypeName neutral, PublicKey neutral]) ref: ( flgs: 00000000 guid: {27dec61e-b43c-4ac8-88db-e209a8242d90} name: [l:0]"" ncdata: [l:0]"")

    2008-04-02 01:33:47, Info                  CSI    0000000f Call to uninstall failed, the TLC is not currently installed by that installer

    2008-04-02 01:33:47, Info                  CSI    00000010 Component change list:

    2008-04-02 01:33:47, Info                  CSI    00000011 Creating NT transaction (seq 3), objectname [6]"(null)"

    2008-04-02 01:33:47, Info                  CSI    00000012 Created NT transaction (seq 3) result 0x00000000, handle @0x1f4

    2008-04-02 01:33:47, Info                  CSI    00000013@2008/4/1:22:33:47.489 CSI perf trace:

    CSIPERF:TXCOMMIT;5158

    2008-04-02 01:33:47, Info                  CSI    00000014 Creating NT transaction (seq 4), objectname [6]"(null)"

    2008-04-02 01:33:47, Info                  CSI    00000015 Created NT transaction (seq 4) result 0x00000000, handle @0x23c

    2008-04-02 01:33:47, Info                  CSI    00000016@2008/4/1:22:33:47.494 CSI perf trace:

    CSIPERF:TXCOMMIT;3899

  19. V!ctor says:

    Oh my gosh. The girl @ Vista sp1 support chat asks me, if vc 2005 supposed to work in vista. And if did it worked in XP… :S  

  20. astebner says:

    Hi V!ctor – the log snippet you posted appears to be from an uninstall, not an install.  Can you double-check that the timestamps for the entries in your CBS.log match up with the timestamps in your MSI log file so we can be sure we’re looking at the correct log file entries?

  21. V!ctor says:

    Hi Aaron. That’s actually the "complete log", since i renamed original cbs.log as it’s too huge to dig into, made an attempt to install vc_redist and after getting my favorite 1935 error, copied all that were in fresh cbs.log.

  22. astebner says:

    Hi V!ctor – Thanks for confirming.  From the log, it sounds possible that the component install state in your registry is not consistent within itself and/or is not consistent with what is on the file system.  I’m not sure how a system could get into that state, and I don’t have a reliable set of steps that I can suggest to try to get things back into a known good state.

    It might help to try to install Vista SP1 if you haven’t already.  It is also possible that the Vista SP1 support people you are talking to can walk you through some manual steps to fix things up.  If neither of those work out, it might be necessary to try to repair your OS to fix this.

    I’m sorry I haven’t been able to be more helpful in this scenario.

  23. muuzzi says:

    Hi V!ctor and Astebner, I encountered the same problem while installing VS 2008 in my Vista.

    I noticed there was a folder InstallTemp inside Winsxs. Do you ever changed the owner and permissions of Winsxs folder? (Weeks ago I changed the permissions to compress the Winsxs folder.) If so, you may not set the permission correctly. The most important thing is: The two folders – winsxs and winsxsinstalltemp – have different permissions! InstallTemp should be granted Full Control to System and Administrators. If not, the setup program could not write vc80 dlls or vc90 dlls into the folder.

    After I re-set the correct permissions, and run SFC.EXE /scannow to repair the consistency of system files, the setup of VS 2008 succeeded.

  24. astebner says:

    Hi Muuzzi – On Windows Vista and later, the %windir%WinSxS folder is used to store copies of all files that are a part of the OS.  You should not ever need to manually change permissions on that folder, and you should also not change settings to compress that folder or anything like that or it could cause problems with OS hotfix installation and installation of any Win32 assemblies like the VC80/VC90 runtime files that need to be installed there.  You should leave the default settings for this folder that are applied when installing the OS.

  25. MetaFour says:

    This solved the problem for me:

    resources.arcgis.com/…/kbase

    RegistrySizeLimit

  26. Pranab says:

    Hi Guys

    Still fighting with following error while installing VS 2005

    Error 1335.The cabinet file '_14311_VC80_PDB_WINSXS_ATLMFC_x86.msm' required for this installation is corrupt and cannot be used. This could indicate a network error, an error reading from the CD-ROM, or a problem with this package.

    Please suggest how to fix it.

  27. astebner says:

    Hi Pranab – This 1335 error usually means that one of the files on your disc is corrupt or missing.  If you're installing from a disc, it might help to gently clean the back of the disc and try again, or to copy the contents of the dics to your hard drive and install from the hard drive instead.  If you're installing from a downloaded copy of the setup package, you may want to try to re-download the setup package and try again.

  28. Rodrigo says:

    muuzzi, InstallTemp has been solved. I have deleted this folder, and now, recreated. Works fine, after I have remove all VC90 references for everywhere.

  29. Lana says:

    I have a probook 450 G1 and I am having so many problems trying to install programmes. I received c++ 2005 errors trying to install one program so I installed it but now when I try and install c++ 2005 I get a advpack.dll error message. I tried to run your cleanup programme but I get the same error message. Do you have any advice please, or should I just reinstall windows 7?

  30. astebner says:

    Hi Lana – Advpack.dll is a file that comes with Windows, and it is used for things like extracting compressed files.  It doesn't have anything to do with the .NET Framework, so the cleanup tool on my blog won't help with that.  If you're seeing an error related to that file, then I'd suggest trying the following options to see if they will repair it:

    1.  Install the latest Windows service pack if you haven't yet.

    2.  Try to run the System Update Readiness Tool from support.microsoft.com/…/947821.

    3.  Try to repair the files that are a part of your OS by using the steps listed at blogs.msdn.com/…/how-to-repair-the-net-framework-2-0-and-3-0-on-windows-vista.aspx.

    If none of the above help, you might need to repair/re-install Windows to fix this type of error.  It might also help to post a question on one of the Windows forums to see if someone there has any additional suggestions for you to try before you resort to re-installing Windows.

  31. Lana says:

    Thanks, I'll give that a go 🙂

  32. Mike Trodd says:

    I have had so much trouble with this 1935 error and seem unable to get any help anywhere.

    My CBS log for the error can be found here http://www.dropbox.com/…/CBS.log

    This thread refers: social.msdn.microsoft.com/…/unable-to-install-64bit-ms-visual-2008-32bit-installed-ok

    Slightly altered in that 2008VS is now in, but can't get 2005 to install.

    Looking at the log it seems like it is trying to uninstall it 🙁 So confused, please help if you can.

  33. astebner says:

    Hi Mike Trodd – 1935 errors that occur during the installation of Win32 assemblies such as the VC++ runtime files are caused by problems with the Windows component store, not the .NET Framework, so you can ignore any of the suggestions in that forum post that refer to the .NET Framework.  The CBS log that you uploaded looks very small compared to what I'm used to seeing, and it only contains information about uninstalling VC++ runtime files, so I think that may be capturing information from the roll back that happens after the VC++ redistributable fails to install on your computer.

    Here are the steps that I typically recommend for 1935 errors that occur during the installation of Win32 assemblies:

    1.  Install the latest Windows service pack and updates if you haven't yet.

    2.  Try to run the System Update Readiness Tool from support.microsoft.com/…/947821.

    3.  Try to repair the files that are a part of your OS by using the steps listed at blogs.msdn.com/…/how-to-repair-the-net-framework-2-0-and-3-0-on-windows-vista.aspx.

    If none of the above help, you might need to repair/re-install Windows to fix this type of error.  It might also help to post a question on a Windows forum (instead of the Visual Studio forum that you sent a link to) to see if someone there has any additional suggestions for you to try before you resort to re-installing Windows.

  34. Mike Trodd says:

    Hi Aaron

    Many thanks, very much a work in progress this!