You can use rundll32.exe to run a dll as a app, i am using this code
Process p = new Process();
p.StartInfo.FileName = "C:\\WINDOWS\\system32\\rundll32.exe";
p.StartInfo.Arguments = "C:\\Dll.dll" //Dll.dll is a simple "hello world" program
p.Start();
but it is not working, any ideas?