protected override void ExecuteCore() { bool writeDevRuntimeConfig = !string.IsNullOrEmpty(RuntimeConfigDevPath); if (!WriteAdditionalProbingPathsToMainConfig) { if (AdditionalProbingPaths?.Any() == true && !writeDevRuntimeConfig) { Log.LogWarning(Strings.SkippingAdditionalProbingPaths); } } LockFile lockFile = new LockFileCache(this).GetLockFile(AssetsFilePath); ProjectContext projectContext = lockFile.CreateProjectContext( NuGetUtils.ParseFrameworkName(TargetFrameworkMoniker), RuntimeIdentifier, PlatformLibraryName, RuntimeFrameworks, IsSelfContained); WriteRuntimeConfig(projectContext); if (writeDevRuntimeConfig) { WriteDevRuntimeConfig(projectContext); } }
private void AddAdditionalProbingPaths(RuntimeOptions runtimeOptions, ProjectContext projectContext) { if (runtimeOptions.AdditionalProbingPaths == null) { runtimeOptions.AdditionalProbingPaths = new List <string>(); } // Add the specified probing paths first so they are probed first if (AdditionalProbingPaths?.Any() == true) { foreach (var additionalProbingPath in AdditionalProbingPaths) { runtimeOptions.AdditionalProbingPaths.Add(additionalProbingPath.ItemSpec); } } foreach (var packageFolder in projectContext.LockFile.PackageFolders) { // DotNetHost doesn't handle additional probing paths with a trailing slash runtimeOptions.AdditionalProbingPaths.Add(EnsureNoTrailingDirectorySeparator(packageFolder.Path)); } }
protected override void ExecuteCore() { bool writeDevRuntimeConfig = !string.IsNullOrEmpty(RuntimeConfigDevPath); if (!WriteAdditionalProbingPathsToMainConfig) { if (AdditionalProbingPaths?.Any() == true && !writeDevRuntimeConfig) { Log.LogWarning(Strings.SkippingAdditionalProbingPaths); } } if (!string.IsNullOrEmpty(RollForward)) { if (!RollForwardValues.Any(v => string.Equals(RollForward, v, StringComparison.OrdinalIgnoreCase))) { Log.LogError(Strings.InvalidRollForwardValue, RollForward, string.Join(", ", RollForwardValues)); return; } } LockFile lockFile = new LockFileCache(this).GetLockFile(AssetsFilePath); ProjectContext projectContext = lockFile.CreateProjectContext( NuGetUtils.ParseFrameworkName(TargetFrameworkMoniker), RuntimeIdentifier, PlatformLibraryName, RuntimeFrameworks, IsSelfContained); WriteRuntimeConfig(projectContext); if (writeDevRuntimeConfig) { WriteDevRuntimeConfig(projectContext); } }
protected override void ExecuteCore() { bool writeDevRuntimeConfig = !string.IsNullOrEmpty(RuntimeConfigDevPath); if (!WriteAdditionalProbingPathsToMainConfig) { if (AdditionalProbingPaths?.Any() == true && !writeDevRuntimeConfig) { Log.LogWarning(Strings.SkippingAdditionalProbingPaths); } } if (!string.IsNullOrEmpty(RollForward)) { if (!RollForwardValues.Any(v => string.Equals(RollForward, v, StringComparison.OrdinalIgnoreCase))) { Log.LogError(Strings.InvalidRollForwardValue, RollForward, string.Join(", ", RollForwardValues)); return; } } if (AssetsFilePath == null) { var isFrameworkDependent = LockFileExtensions.IsFrameworkDependent( RuntimeFrameworks, IsSelfContained, RuntimeIdentifier, string.IsNullOrWhiteSpace(PlatformLibraryName)); if (isFrameworkDependent != true) { throw new ArgumentException( $"{nameof(DependencyContextBuilder)} Does not support non FrameworkDependent without asset file. " + $"runtimeFrameworks: {string.Join(",", RuntimeFrameworks.Select(r => r.ItemSpec))} " + $"isSelfContained: {IsSelfContained} " + $"runtimeIdentifier: {RuntimeIdentifier} " + $"platformLibraryName: {PlatformLibraryName}"); } if (PlatformLibraryName != null) { throw new ArgumentException( "Does not support non null PlatformLibraryName(TFM < 3) without asset file."); } WriteRuntimeConfig( RuntimeFrameworks.Select(r => new ProjectContext.RuntimeFramework(r)).ToArray(), null, isFrameworkDependent: true, new List <LockFileItem>()); } else { LockFile lockFile = new LockFileCache(this).GetLockFile(AssetsFilePath); ProjectContext projectContext = lockFile.CreateProjectContext( NuGetUtils.ParseFrameworkName(TargetFrameworkMoniker), RuntimeIdentifier, PlatformLibraryName, RuntimeFrameworks, IsSelfContained); WriteRuntimeConfig(projectContext.RuntimeFrameworks, projectContext.PlatformLibrary, projectContext.IsFrameworkDependent, projectContext.LockFile.PackageFolders); if (writeDevRuntimeConfig) { WriteDevRuntimeConfig(projectContext.LockFile.PackageFolders); } } }