作为尝试通过Console应用程序测试NuGet软件包的一部分,是否可以让Console应用程序以编程方式获取该NuGet软件包的最新版本,然后使用该软件包调用各种方法,而没有?这就是我要实现的流程...
如何实现?我已经使用NuGet.Core
和NuGet.Protocol
NuGet软件包尝试了以下代码...
// exception thrown for trying to resolving newtonsoft
IPackageRepository packageRepository = new NuGet.LocalPackageRepository(directoryPath);
PackageManager pm = new PackageManager(packageRepository, GetExecutingAssemblyDirectory());
pm.InstallPackage("package_id", SemanticVersion.Parse("package_version"));
NuGet.Common.ILogger logger = new Logger();
IEnumerable<LocalPackageInfo> packageInfos = LocalFolderUtility.GetPackagesV2(directoryPath, logger);
foreach (LocalPackageInfo lpi in packageInfos)
{
// no obvious way to actually install the package
}
// never more than zero packages
var localRepo = new LocalPackageRepository(directoryPath);
var packages = localRepo.GetPackages();
if (packages?.Count() > 0)
{
var packageManager = new PackageManager(localRepo, GetExecutingAssemblyDirectory());
packageManager.InstallPackage(packages.ElementAt(0).Id);
}
我无法使所有这些代码正常工作。这实际上可行吗?我将不得不考虑使用2个控制台应用程序(一个安装到另一个中,然后调用方法),如果可以的话,该怎么做?