in src/Microsoft.VisualStudio.VsixInstaller.Shared/Installer.cs [26:75]
public static void Install(IEnumerable<string> vsixFiles, string installationPath, string rootSuffix)
{
AppDomain.CurrentDomain.AssemblyResolve += HandleAssemblyResolve;
try
{
InstallImpl(vsixFiles, rootSuffix, installationPath);
}
finally
{
AppDomain.CurrentDomain.AssemblyResolve -= HandleAssemblyResolve;
}
return;
Assembly? HandleAssemblyResolve(object sender, ResolveEventArgs args)
{
string path = Path.Combine(installationPath, @"Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.Threading.17.x", new AssemblyName(args.Name).Name + ".dll");
if (File.Exists(path))
{
return Assembly.LoadFrom(path);
}
path = Path.Combine(installationPath, @"Common7\IDE\PrivateAssemblies\Newtonsoft.Json.13.0.1.0", new AssemblyName(args.Name).Name + ".dll");
if (File.Exists(path))
{
return Assembly.LoadFrom(path);
}
path = Path.Combine(installationPath, @"Common7\IDE\PrivateAssemblies", new AssemblyName(args.Name).Name + ".dll");
if (File.Exists(path))
{
return Assembly.LoadFrom(path);
}
path = Path.Combine(installationPath, @"Common7\IDE", new AssemblyName(args.Name).Name + ".dll");
if (File.Exists(path))
{
return Assembly.LoadFrom(path);
}
path = Path.Combine(installationPath, @"Common7\IDE\PublicAssemblies", new AssemblyName(args.Name).Name + ".dll");
if (File.Exists(path))
{
return Assembly.LoadFrom(path);
}
return null;
}
}