Use RegistrationServices. See follwing code fragment. It does Show Register and unregister.
RegistrationServices regAsm = new RegistrationServices();
String currentDir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName);
String assemblyFullName = currentDir + "\\" + xAssemblyName;
Assembly assembly = null;
if (File.Exists(xAssemblyName))
{
AssemblyRegistrationFlags flags= AssemblyRegistrationFlags.SetCodeBase;
try
{
assembly = System.Reflection.Assembly.LoadFile(assemblyFullName);
}
catch(Exception Excpt)
{
assembly = null;
Console.WriteLine("Loading assembly failed. Message= " + Excpt.Message);
}
if (assembly != null)
{
try
{
if (xOption.ToLower() == "/u")
{
if (regAsm.UnregisterAssembly(assembly))
Console.WriteLine("Successfully unregistered");
else
Console.WriteLine("Unregister failed");
}
else
{
if (regAsm.RegisterAssembly(assembly, flags))
Console.WriteLine("Successfully registered " + xAssemblyName);
else
Console.WriteLine("Registration failed");
}
}
catch (Exception Excpt)
{
Console.WriteLine("Registering/Unregistering assembly failed. Message= ");
Console.WriteLine(Excpt.Message);
Console.WriteLine();
Console.WriteLine("Most likely you do not have administrator rights.");
}
}
}
else
{
Console.WriteLine("File does not exist: " + xAssemblyName);
Console.WriteLine();
DisplayHelp();
}