0x80070002 is the error code returned when a FileNotFoundException (HRESULT COR_E_FILENOTFOUND) is thrown in managed code. Basically, there is a missing file that your managed code expects.
In my case I was getting this when I tried to install a component in COM+ (Component Services) where the COM object was written in C#. However, I didn’t have a method defined as with a [ComRegisterFunctionAttribute], so how could my code throw a file not found exception? The issue was that my assembly relied on other assemblies that where not present. Which lead to a binding problem when install the component in COM+, so it was the CLR that was throwing the exception not my code.
To make matter’s worse, I was trying to install the component during an MSI installation. The .log file from msi just showed an 0x80070002 error. To find the issue I used the Assembly Bind Log Viewer (FUSLOGVW.exe) found in the Windows SDK. While the MSI installer ran, The Assembly Bind Viewer was tracking which assemblies where not binding correctly, and keeping a log of them. This allowed me to figure out what MSI was doing, and where the 0x80070002 was coming from.