Загрузка зависимостей nuget во время выполнения
Я ищу способ запустить код, выполнив следующие шаги:
Получение списка пакетов NuGet (список кортежей («имя пакета», «версия пакета», «путь к основному классу»).Получение их в локальном каталоге (см. Пример кода № 1)Загрузка их в мою программу во время выполненияВыполнение основных классов путем самоанализа (пример кода № 2)Сейчас я борюсь с третьим шагом. Я не могу узнать, как загрузить свой пакет во время выполнения.
Мой главный вопрос:
Как я могу узнать, в каких папках хранились полученные пакеты?Как я могу загрузить содержимое этих каталогов в мою программу?Спасибо за вашу помощь.
Пример кода № 1:
private static void getPackageByNameAndVersion(string packageID, string version)
{
IPackageRepository repo =
PackageRepositoryFactory.Default
.CreateRepository("https://packages.nuget.org/api/v2");
string path = "C:/tmp_repo";
PackageManager packageManager = new PackageManager(repo, path);
Console.WriteLine("before dl pkg");
packageManager.InstallPackage(packageID, SemanticVersion.Parse(version));
}
Пример кода № 2:
private static void loadByAssemblyNameAndTypeName(string assemblyName, string typeName)
{
AppDomain isolationAppDomain = AppDomain.CreateDomain("tmp");
object a = isolationAppDomain.CreateInstanceAndUnwrap(assemblyName, typeName);
Type x = a.GetType();
MethodInfo m = x.GetMethod("Main");
m.Invoke(a, new object[] { });
}