var assemDir = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
var current = AppDomain.CurrentDomain;
IAddInFactory addinFactory;
try
{ // assume 64bit is more common now
var addInAssemName = AssemblyName.GetAssemblyName(Path.Combine(assemDir, @"Redbolts.AddIn.AddIn64Factory.dll")).FullName;
addinFactory = (IAddInFactory)current.CreateInstanceAndUnwrap(addInAssemName,
"Redbolts.AddIn.AddIn64Factory.AddInFactory",
false, BindingFlags.Default, null, null , null, null, null);
Console.WriteLine("Successfully loaded 64bit OS version of RevitAddInUtility");}
catch (Exception ex)
{ addinFactory = (IAddInFactory)current.CreateInstanceFromAndUnwrap(Path.Combine(assemDir, @"OS32\Redbolts.AddIn.AddIn32Factory.dll"),
"Redbolts.AddIn.AddIn32Factory.AddInFactory",
false, BindingFlags.Default, null, null, null, null, null);
Console.WriteLine("Successfully loaded 32bit OS version of RevitAddInUtility");}
if (addinFactory!= null)
{ Console.WriteLine(addinFactory.RevitInstalledApplications.Count());
foreach (string revitInstalledApplication in addinFactory.RevitInstalledApplications)
{ Console.WriteLine(revitInstalledApplication);
}
}
Console.ReadLine();