private object InitExternalContext()
{
string providerDirectory = GetProviderDirectory();
_request.Verbose("Loading Zero Install OneGet provider from {0}", providerDirectory);
var assembly = Assembly.LoadFrom(Path.Combine(providerDirectory, "ZeroInstall.OneGet.dll"));
var requestType = assembly.GetType("PackageManagement.Sdk.Request", throwOnError: true);
object requestProxy = new ProxyFactory().CreateProxy(requestType, new RequestInterceptor(_request));
var contextType = assembly.GetType("ZeroInstall.OneGet.OneGetContext", throwOnError: true);
return Activator.CreateInstance(contextType, requestProxy);
}