private string GetNugetPackageName(string name, string type) { if (type == SourceCodeTypes.Template) { return(TemplateNugetPackageInfoProvider.GetNugetPackageName(name)); } if (type == SourceCodeTypes.Module) { return(name + ModuleConsts.SourceCorePackagePostfix); } return(name); }
public async Task <string> GetCachedDllFilePathAsync(string name, string type, string version = null, bool includePreReleases = false, bool includeDependencies = false) { if (type == SourceCodeTypes.Template) { name = TemplateNugetPackageInfoProvider.GetNugetPackageName(name); } version ??= await GetLatestVersionAsync(name, includePreReleases); var localDllFolder = Path.Combine( GetLocalNugetCachePath(), name, version, "lib"); if (!Directory.Exists(localDllFolder) || (includeDependencies && !Directory.GetFiles(localDllFolder, $"*Volo.Abp.Studio.ModuleInstaller.dll", SearchOption.AllDirectories).Any())) { if (includeDependencies) { var temporaryFolder = await _nugetPackageCacheManager.CachePackageAsync(name, version, false); var outputFolder = Path.GetDirectoryName( Directory .GetFiles(localDllFolder, $"*{name}.dll", SearchOption.AllDirectories) .First() ); _cmdHelper.RunCmdAndGetOutput($"dotnet build -o {outputFolder}", temporaryFolder); Directory.Delete(temporaryFolder, true); } else { await _nugetPackageCacheManager.CachePackageAsync(name, version); } } if (!Directory.Exists(localDllFolder)) { return(null); } return(Directory.GetFiles(localDllFolder, $"{name}.dll", SearchOption.AllDirectories).FirstOrDefault()); }