public PluginCore(MainWindow window)
{
mainWindow = window;
// Force all referenced assemblies to load so that I can find them
var loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies().ToList();
loadedAssemblies
.SelectMany(x => x.GetReferencedAssemblies())
.Distinct()
.Where(y => loadedAssemblies.Any((a) => a.FullName == y.FullName) == false)
.ToList()
.ForEach(x => loadedAssemblies.Add(AppDomain.CurrentDomain.Load(x)));
Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();
List<string> references = new List<string>();
references.Add("LynnaLab.exe");
for (int i=0;i<assemblies.Length;i++) {
try {
if (Environment.OSVersion.Platform == PlatformID.Win32Windows
|| Environment.OSVersion.Platform == PlatformID.Win32NT
|| Environment.OSVersion.Platform == PlatformID.Win32S
|| Environment.OSVersion.Platform == PlatformID.WinCE) {
references.Add(assemblies[i].CodeBase.Replace("file:///", ""));
}
else {
references.Add(assemblies[i].CodeBase.Replace("file:///", "/"));
}
Console.WriteLine("Reference: \"" + references[references.Count-1] + "\"");
}
catch (System.NotSupportedException) {
Console.WriteLine("1 reference failed: " + assemblies[i]);
}
}
referencedAssemblies = references.ToArray();
}