How to fix some 1935 errors with HRESULT 0x80070005 (access denied) when installing the .NET Framework

I was contacted by a customer this week who could not install the .NET Framework 1.1 due to a 1935 error that was not described in my previous blog posts (here and here for example). The exact error was the following:

MSI (s) (E0:80) [12:44:29:575]: Product: Microsoft .NET Framework 1.1 -- Error 1935.An error occurred during the installation of assembly 'Microsoft.Vsa.Vb.CodeDOMProcessor, Version="7.0.5000.0", PublicKeyToken="b03f5f7f11d50a3a", Culture="neutral", FileVersion="7.10.3052.4"'. Please refer to Help and Support for more information. HRESULT: 0x80070005. assembly interface: IAssemblyCacheItem, function: Commit, component: {7D4B5591-4C80-42BB-B0E5-F2C0CEE02C1A}

As I described here, the HRESULT value 0x80070005 means "access denied". Typically this happens due to a permission (ACL) problem on one of the directories under \windows\. But in this case, the customer tried to reset the permissions and re-run setup but got the same error.

I suggested looking at any anti-virus or anti-spyware software because they tend to lock down files and folders to prevent malicious programs from installing themselves, and it is very hard to detect the difference between a trusted setup program and a malicious one.  The customer found that they had the Sophos anti-virus program installed. They were able to successfully install the .NET Framework 1.1 by stopping the Sophos service (sweepsrv.sys) and then running .NET Framework setup.

Note that in this type of scenario, you should be very careful when stopping anti-virus and anti-spyware software. What I typically do is the following:

  1. Download the setup package I want to install
  2. Disconnect from the network
  3. Stop anti-virus and anti-spyware software
  4. Install the software I downloaded in step 1
  5. Restart anti-virus and anti-spyware software
  6. Reconnect to the network