public IEnumerable <ResolvedFile> Resolve(ProjectContext projectContext) { List <ResolvedFile> results = new List <ResolvedFile>(); foreach (LockFileTargetLibrary targetLibrary in projectContext.GetRuntimeLibraries(_excludeFromPublishPackageIds)) { if (targetLibrary.Type != "package") { continue; } var targetLibraryPackage = new PackageIdentity(targetLibrary.Name, targetLibrary.Version); string pkgRoot; string libraryPath = _packageResolver.GetPackageDirectory(targetLibrary.Name, targetLibrary.Version, out pkgRoot); results.AddRange(GetResolvedFiles(targetLibrary.RuntimeAssemblies, targetLibraryPackage, libraryPath, pkgRoot, AssetType.Runtime)); results.AddRange(GetResolvedFiles(targetLibrary.NativeLibraries, targetLibraryPackage, libraryPath, pkgRoot, AssetType.Native)); foreach (LockFileRuntimeTarget runtimeTarget in targetLibrary.RuntimeTargets.FilterPlaceHolderFiles()) { if (string.Equals(runtimeTarget.AssetType, "native", StringComparison.OrdinalIgnoreCase) || string.Equals(runtimeTarget.AssetType, "runtime", StringComparison.OrdinalIgnoreCase)) { string sourcePath = Path.Combine(libraryPath, runtimeTarget.Path); AssetType _assetType = AssetType.None; Enum.TryParse <AssetType>(runtimeTarget.AssetType, true, out _assetType); results.Add( new ResolvedFile( sourcePath: sourcePath, destinationSubDirectory: GetDestinationSubDirectory(sourcePath, pkgRoot, GetRuntimeTargetDestinationSubDirectory(runtimeTarget)), package: targetLibraryPackage, assetType: _assetType)); } } foreach (LockFileItem resourceAssembly in targetLibrary.ResourceAssemblies.FilterPlaceHolderFiles()) { string locale; string sourcePath = Path.Combine(libraryPath, resourceAssembly.Path); if (!resourceAssembly.Properties.TryGetValue("locale", out locale)) { locale = null; } locale = GetDestinationSubDirectory(sourcePath, pkgRoot, locale); results.Add( new ResolvedFile( sourcePath: sourcePath, destinationSubDirectory: locale, package: targetLibraryPackage, assetType: AssetType.Resources)); } } return(results); }
public IEnumerable <ResolvedFile> Resolve(ProjectContext projectContext) { List <ResolvedFile> results = new List <ResolvedFile>(); foreach (LockFileTargetLibrary targetLibrary in projectContext.GetRuntimeLibraries(_privateAssetPackageIds)) { if (targetLibrary.Type != "package") { continue; } string libraryPath = _packageResolver.GetPackageDirectory(targetLibrary.Name, targetLibrary.Version); results.AddRange(GetResolvedFiles(targetLibrary.RuntimeAssemblies, libraryPath)); results.AddRange(GetResolvedFiles(targetLibrary.NativeLibraries, libraryPath)); foreach (LockFileRuntimeTarget runtimeTarget in targetLibrary.RuntimeTargets.FilterPlaceHolderFiles()) { if (string.Equals(runtimeTarget.AssetType, "native", StringComparison.OrdinalIgnoreCase) || string.Equals(runtimeTarget.AssetType, "runtime", StringComparison.OrdinalIgnoreCase)) { results.Add( new ResolvedFile( sourcePath: Path.Combine(libraryPath, runtimeTarget.Path), destinationSubDirectory: GetRuntimeTargetDestinationSubDirectory(runtimeTarget))); } } foreach (LockFileItem resourceAssembly in targetLibrary.ResourceAssemblies.FilterPlaceHolderFiles()) { string locale; if (!resourceAssembly.Properties.TryGetValue("locale", out locale)) { locale = null; } results.Add( new ResolvedFile( sourcePath: Path.Combine(libraryPath, resourceAssembly.Path), destinationSubDirectory: locale)); } } return(results); }