How does ngen lookup native images?
Example 1:
I compile MyApp.exe v1.0.0.0 in C:\Test\MyApp\bin\Debug\MyApp.exe .
I ngen MyApp.exe via ngen install MyApp.exe. After this ngen display MyApp will tell me that I have an NGen root at the full path to the executable. ngen display MyApp.exe in the directory will also tell me this particular file installed. Next, I change something in my app and recompile it without changing the version. Doing ngen display for the exe tells me it is NOT installed (which is nice) but why? Is the hash directory that ngen stores the MyApp.ni.exe under based on the file contents?
Example 2:
I compile the exe as in example 1, but then I move it to C:\Temp\MyApp.exe, and run ngen display MyApp.exe. Ngen will tell me this exe is not installed, but why? Is the lookup also based on an absolute path to the assembly file?
It seems like ngen computes a hash for lookup such as e.g. ComputeHash(assemblyQualifiedName, assemblyFileChecksum, assemblyFullPath), is this correct?