The file bjc.key was producing using sn.exe. I think it is: sn -k bjc.key The files Fred1.cs and Fred2.cs contain two versions of Fred. The makefile make1.bat copies Fred1.cs into Fred.cs and compiles it producing Test.exe which it renames as Test1.exe. Similiarly for make2.bat. Both makefiles put a copy of Fred.dll into the global assembly cache. Now remove Fred.dll. Running Test1.exe works OK. Running Test2.exe works OK. Now remove the first Fred.dll from the GAC. With Beta 2 (and possibly Beta 1), this can be done using: gacutil /u Fred,Version=1.0.0.0 Now Test1 fails to work. If you remove the second Fred.dll from the GAC, Test2 fails to work. The GAC is stored below c:\WINNT\Assembly\global The GAC can be listed using: gacutil -l The file: file:///C|/Program Files/Microsoft.Net/FrameworkSDK/Samples/StartSamples.htm has more about using configuration files. When moving from Beta 1 to Beta 2, a number of changes had to be made to the files make1.bat and make2.bat: 1. In Beta 1, in order for a dll to have a key and a version, you added two options to the csc command. In Beta 2, you first use csc /t:module to produce a module (in a file called Fred.netmodule), and then you use al to produce a dll that has a key and a version. 2. In Beta 1, al was used to insert a dll into the GAC whereas in Beta 2 gacutil is used. 3. Note that gacutil is in C:\Program Files\Microsoft.NET\FrameworkSDK\Bin and al and csc are in C:\WINNT\Microsoft.NET\Framework\v1.0.2914.