Output NuGet Packages referenced in Solution.
dotnet list package --include-transitive --format json > output.json
Then run Program.cs
dotnet run
It shows result in Markdown. (see RESULT.md)
{ | |
"version": 1, | |
"parameters": "--include-transitive", | |
"problems": [ | |
{ | |
"level": "warning", | |
"text": "(A) : Auto-referenced package." | |
} | |
], | |
"projects": [ | |
{ | |
"path": "D:/github/guitarrapc/csharp-lab/src/LinuxBuild/ClassLibrary/ClassLibrary.csproj", | |
"frameworks": [ | |
{ | |
"framework": "net9.0" | |
} | |
] | |
}, | |
{ | |
"path": "D:/github/guitarrapc/csharp-lab/src/LinuxBuild/ConsoleApp/ConsoleApp.csproj", | |
"frameworks": [ | |
{ | |
"framework": "net9.0" | |
} | |
] | |
}, | |
{ | |
"path": "D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj", | |
"frameworks": [ | |
{ | |
"framework": "net9.0", | |
"topLevelPackages": [ | |
{ | |
"id": "Grpc.AspNetCore", | |
"requestedVersion": "2.67.0", | |
"resolvedVersion": "2.67.0" | |
} | |
], | |
"transitivePackages": [ | |
{ | |
"id": "Google.Protobuf", | |
"resolvedVersion": "3.27.0" | |
}, | |
{ | |
"id": "Grpc.AspNetCore.Server", | |
"resolvedVersion": "2.67.0" | |
}, | |
{ | |
"id": "Grpc.AspNetCore.Server.ClientFactory", | |
"resolvedVersion": "2.67.0" | |
}, | |
{ | |
"id": "Grpc.Core.Api", | |
"resolvedVersion": "2.67.0" | |
}, | |
{ | |
"id": "Grpc.Net.Client", | |
"resolvedVersion": "2.67.0" | |
}, | |
{ | |
"id": "Grpc.Net.ClientFactory", | |
"resolvedVersion": "2.67.0" | |
}, | |
{ | |
"id": "Grpc.Net.Common", | |
"resolvedVersion": "2.67.0" | |
}, | |
{ | |
"id": "Grpc.Tools", | |
"resolvedVersion": "2.67.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.DependencyInjection", | |
"resolvedVersion": "6.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.DependencyInjection.Abstractions", | |
"resolvedVersion": "6.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Http", | |
"resolvedVersion": "6.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Logging", | |
"resolvedVersion": "6.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Logging.Abstractions", | |
"resolvedVersion": "6.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Options", | |
"resolvedVersion": "6.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Primitives", | |
"resolvedVersion": "6.0.0" | |
}, | |
{ | |
"id": "System.Diagnostics.DiagnosticSource", | |
"resolvedVersion": "6.0.0" | |
}, | |
{ | |
"id": "System.Runtime.CompilerServices.Unsafe", | |
"resolvedVersion": "6.0.0" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"path": "D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorServerApp/BlazorServerApp.csproj", | |
"frameworks": [ | |
{ | |
"framework": "net9.0" | |
} | |
] | |
}, | |
{ | |
"path": "D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj", | |
"frameworks": [ | |
{ | |
"framework": "net9.0", | |
"topLevelPackages": [ | |
{ | |
"id": "Microsoft.AspNetCore.Components.WebAssembly", | |
"requestedVersion": "9.0.0", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.AspNetCore.Components.WebAssembly.DevServer", | |
"requestedVersion": "9.0.0", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.NET.ILLink.Tasks", | |
"requestedVersion": "[9.0.0, )", | |
"resolvedVersion": "9.0.0", | |
"autoReferenced": "true" | |
}, | |
{ | |
"id": "Microsoft.NET.Sdk.WebAssembly.Pack", | |
"requestedVersion": "[9.0.0, )", | |
"resolvedVersion": "9.0.0", | |
"autoReferenced": "true" | |
} | |
], | |
"transitivePackages": [ | |
{ | |
"id": "Microsoft.AspNetCore.Authorization", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.AspNetCore.Components", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.AspNetCore.Components.Analyzers", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.AspNetCore.Components.Forms", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.AspNetCore.Components.Web", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.AspNetCore.Metadata", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Configuration", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Configuration.Abstractions", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Configuration.Binder", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Configuration.FileExtensions", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Configuration.Json", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.DependencyInjection", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.DependencyInjection.Abstractions", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.FileProviders.Abstractions", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.FileProviders.Physical", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.FileSystemGlobbing", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Logging", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Logging.Abstractions", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Options", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Primitives", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.JSInterop", | |
"resolvedVersion": "9.0.0" | |
}, | |
{ | |
"id": "Microsoft.JSInterop.WebAssembly", | |
"resolvedVersion": "9.0.0" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"path": "D:/github/guitarrapc/csharp-lab/src/LinuxBuild/ClassLibrary.Windows/ClassLibrary.Windows.csproj", | |
"frameworks": [ | |
{ | |
"framework": "net9.0-windows7.0" | |
} | |
] | |
}, | |
{ | |
"path": "D:/github/guitarrapc/csharp-lab/src/Blazor/BlazorServerApp/BlazorServerApp.csproj", | |
"frameworks": [ | |
{ | |
"framework": "net9.0", | |
"topLevelPackages": [ | |
{ | |
"id": "Microsoft.VisualStudio.Azure.Containers.Tools.Targets", | |
"requestedVersion": "1.21.0", | |
"resolvedVersion": "1.21.0" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"path": "D:/github/guitarrapc/csharp-lab/src/Blazor/BlazorServerIPBlockApp/BlazorServerIPBlockApp.csproj", | |
"frameworks": [ | |
{ | |
"framework": "net9.0", | |
"topLevelPackages": [ | |
{ | |
"id": "IPNetwork2", | |
"requestedVersion": "3.0.667", | |
"resolvedVersion": "3.0.667" | |
}, | |
{ | |
"id": "Microsoft.VisualStudio.Azure.Containers.Tools.Targets", | |
"requestedVersion": "1.21.0", | |
"resolvedVersion": "1.21.0" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"path": "D:/github/guitarrapc/csharp-lab/src/Logger/LoggerBlazorApp/LoggerBlazorApp.csproj", | |
"frameworks": [ | |
{ | |
"framework": "net9.0", | |
"topLevelPackages": [ | |
{ | |
"id": "Microsoft.VisualStudio.Azure.Containers.Tools.Targets", | |
"requestedVersion": "1.21.0", | |
"resolvedVersion": "1.21.0" | |
}, | |
{ | |
"id": "ZLogger", | |
"requestedVersion": "2.5.9", | |
"resolvedVersion": "2.5.9" | |
} | |
], | |
"transitivePackages": [ | |
{ | |
"id": "Microsoft.Extensions.DependencyInjection", | |
"resolvedVersion": "8.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.DependencyInjection.Abstractions", | |
"resolvedVersion": "8.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Logging", | |
"resolvedVersion": "8.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Logging.Abstractions", | |
"resolvedVersion": "8.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Options", | |
"resolvedVersion": "8.0.0" | |
}, | |
{ | |
"id": "Microsoft.Extensions.Primitives", | |
"resolvedVersion": "8.0.0" | |
}, | |
{ | |
"id": "System.IO.Hashing", | |
"resolvedVersion": "8.0.0" | |
}, | |
{ | |
"id": "System.Threading.Channels", | |
"resolvedVersion": "8.0.0" | |
}, | |
{ | |
"id": "Utf8StringInterpolation", | |
"resolvedVersion": "1.3.1" | |
} | |
] | |
} | |
] | |
}, | |
{ | |
"path": "D:/github/guitarrapc/csharp-lab/src/SourceGenerator/SourceGeneratorBasic/SourceGeneratorBasic.csproj", | |
"frameworks": [ | |
{ | |
"framework": "netstandard2.0", | |
"topLevelPackages": [ | |
{ | |
"id": "Microsoft.CodeAnalysis.Analyzers", | |
"requestedVersion": "3.3.4", | |
"resolvedVersion": "3.3.4" | |
}, | |
{ | |
"id": "Microsoft.CodeAnalysis.CSharp", | |
"requestedVersion": "4.11.0", | |
"resolvedVersion": "4.11.0" | |
}, | |
{ | |
"id": "NETStandard.Library", | |
"requestedVersion": "[2.0.3, )", | |
"resolvedVersion": "2.0.3", | |
"autoReferenced": "true" | |
} | |
], | |
"transitivePackages": [ | |
{ | |
"id": "Microsoft.CodeAnalysis.Common", | |
"resolvedVersion": "4.11.0" | |
}, | |
{ | |
"id": "Microsoft.NETCore.Platforms", | |
"resolvedVersion": "1.1.0" | |
}, | |
{ | |
"id": "System.Buffers", | |
"resolvedVersion": "4.5.1" | |
}, | |
{ | |
"id": "System.Collections.Immutable", | |
"resolvedVersion": "8.0.0" | |
}, | |
{ | |
"id": "System.Memory", | |
"resolvedVersion": "4.5.5" | |
}, | |
{ | |
"id": "System.Numerics.Vectors", | |
"resolvedVersion": "4.5.0" | |
}, | |
{ | |
"id": "System.Reflection.Metadata", | |
"resolvedVersion": "8.0.0" | |
}, | |
{ | |
"id": "System.Runtime.CompilerServices.Unsafe", | |
"resolvedVersion": "6.0.0" | |
}, | |
{ | |
"id": "System.Text.Encoding.CodePages", | |
"resolvedVersion": "7.0.0" | |
}, | |
{ | |
"id": "System.Threading.Tasks.Extensions", | |
"resolvedVersion": "4.5.4" | |
} | |
] | |
} | |
] | |
} | |
] | |
} |
using System.Collections.Concurrent; | |
using System.Text.Json; | |
using System.Text.Json.Serialization; | |
using System.Xml.Linq; | |
var path = @"output.json"; | |
var bytes = File.ReadAllText(path); | |
var packages = JsonSerializer.Deserialize<DotnetCliListPackages>(bytes); | |
ArgumentNullException.ThrowIfNull(packages); | |
var licenses = new ConcurrentBag<DotnetLicense>(); | |
var nugetLicense = new NuGetLicense(); | |
foreach (var project in packages.Projects) | |
{ | |
var Name = project.Path; | |
foreach (var framework in project.Frameworks) | |
{ | |
if (framework.TopLevelPackages is not null) | |
{ | |
foreach (var x in framework.TopLevelPackages) | |
{ | |
var licenseInfo = new DotnetLicense | |
{ | |
Path = Name, | |
LicenseInfo = new PackageInfo | |
{ | |
Id = x.Id, | |
Version = x.ResolvedVersion, | |
License = await nugetLicense.GetNuGetLicenseAsync(x.Id, x.ResolvedVersion), | |
IsTransitivePackage = false, | |
} | |
}; | |
licenses.Add(licenseInfo); | |
} | |
} | |
if (framework.TransitivePackages is not null) | |
{ | |
await Parallel.ForEachAsync(framework.TransitivePackages, new ParallelOptions { MaxDegreeOfParallelism = 3 }, async (x, _) => | |
{ | |
var licenseInfo = new DotnetLicense | |
{ | |
Path = Name, | |
LicenseInfo = new PackageInfo | |
{ | |
Id = x.Id, | |
Version = x.ResolvedVersion, | |
License = await nugetLicense.GetNuGetLicenseAsync(x.Id, x.ResolvedVersion), | |
IsTransitivePackage = true, | |
} | |
}; | |
// debugger checker | |
if (licenseInfo.LicenseInfo.License == "") | |
{ | |
var debuggerLine = ""; | |
} | |
licenses.Add(licenseInfo); | |
}); | |
} | |
} | |
} | |
Console.WriteLine("# Show all NuGet Packages with Project Path"); | |
// licenses.Dump(); | |
OutputMarkdown(licenses); | |
Console.WriteLine(""); | |
Console.WriteLine("# Show only NuGet Packages"); | |
var licenseOnly = licenses | |
.Select(x => x.LicenseInfo) | |
.DistinctBy(x => x.Id + x.Version) | |
.OrderBy(x => x.Id); | |
OutputMarkdown2(licenseOnly); | |
static void OutputMarkdown(IEnumerable<DotnetLicense> licenses) | |
{ | |
Console.WriteLine($""" | |
| Path | Id | Version | License | IsTransitive | | |
| --- | --- | --- | --- | --- | | |
"""); | |
foreach (var license in licenses) | |
{ | |
Console.WriteLine($"| {license.Path} | {license.LicenseInfo.Id} | {license.LicenseInfo.Version} | {license.LicenseInfo.License} | {license.LicenseInfo.IsTransitivePackage} |"); | |
} | |
} | |
static void OutputMarkdown2(IEnumerable<PackageInfo> licenses) | |
{ | |
Console.WriteLine($""" | |
| Id | Version | License | | |
| --- | --- | --- | | |
"""); | |
foreach (var license in licenses) | |
{ | |
Console.WriteLine($"| {license.Id} | {license.Version} | {license.License} |"); | |
} | |
} | |
// var result = await NuGetLicense.GetNuGetLicenseAsync("Grpc.AspNetCore", "2.67.0"); | |
//result.Dump(); | |
public class NuGetLicense | |
{ | |
private readonly HttpClient httpClient = new HttpClient(); | |
private readonly XNamespace ns2013 = "http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd"; | |
private readonly XNamespace ns2012 = "http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd"; | |
private readonly XNamespace ns2011 = "http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd"; | |
private readonly Cache cache = new (); | |
public async Task<string> GetNuGetLicenseAsync(string packageId, string version) | |
{ | |
var cacheKey = packageId + "-" + version; | |
if (cache.TryGetValue(cacheKey, out var license)) | |
{ | |
// Console.WriteLine($"{cacheKey}: use cache"); | |
return license; | |
} | |
// Console.WriteLine($"{cacheKey}: no cache"); | |
// NuGet API Format | |
// https://api.nuget.org/v3-flatcontainer/{package-id}/{version}/{package-id}.nuspec | |
var response = await httpClient.GetStringAsync($"https://api.nuget.org/v3-flatcontainer/{packageId}/{version}/{packageId}.nuspec"); | |
var doc = XDocument.Parse(response); | |
//doc.Dump(); // for debug | |
var licenseValue = doc.Descendants(ns2013 + "metadata") | |
.Select(x => x?.Element(ns2013 + "license")?.Value) | |
.FirstOrDefault() | |
?? doc.Descendants(ns2012 + "metadata") | |
.Select(x => x?.Element(ns2012 + "license")?.Value) | |
.FirstOrDefault() | |
?? doc.Descendants(ns2011 + "metadata") | |
.Select(x => x?.Element(ns2011 + "license")?.Value) | |
.FirstOrDefault(); | |
if (licenseValue is null) | |
{ | |
var licenseUrl = doc.Descendants(ns2013 + "metadata") | |
.Select(x => x?.Element(ns2013 + "licenseUrl")?.Value) | |
.FirstOrDefault() | |
?? doc.Descendants(ns2012 + "metadata") | |
.Select(x => x?.Element(ns2012 + "licenseUrl")?.Value) | |
.FirstOrDefault() | |
?? doc.Descendants(ns2011 + "metadata") | |
.Select(x => x?.Element(ns2011 + "licenseUrl")?.Value) | |
.FirstOrDefault(); | |
licenseValue = licenseUrl ?? ""; | |
} | |
var value = licenseValue ?? ""; | |
cache.TryAdd(cacheKey, value); | |
return value; | |
} | |
private class Cache() | |
{ | |
private readonly ConcurrentDictionary<string, string> cache = new(); | |
public bool TryGetValue(string key, out string value) | |
{ | |
// TODO: Add Get from offline-cache | |
return cache.TryGetValue(key, out value!); | |
} | |
public bool TryAdd(string key, string value) | |
{ | |
// TODO: Add Save to offline-cache | |
return cache.TryAdd(key, value); | |
} | |
} | |
} | |
public record DotnetLicense | |
{ | |
public required string Path { get; init; } | |
public required PackageInfo LicenseInfo { get; init; } | |
} | |
public record PackageInfo | |
{ | |
public required string Id { get; init; } | |
public required string Version { get; init; } | |
public required string License { get; init; } | |
public required bool IsTransitivePackage { get; init; } | |
} | |
public record DotnetCliListPackages | |
{ | |
[JsonPropertyName("projects")] | |
public required DotnetCliProjects[] Projects { get; init; } | |
} | |
public record DotnetCliProjects | |
{ | |
[JsonPropertyName("path")] | |
public required string Path { get; init; } | |
[JsonPropertyName("frameworks")] | |
public required DotnetCliFrameworks[] Frameworks { get; init; } | |
} | |
public record DotnetCliFrameworks | |
{ | |
[JsonPropertyName("topLevelPackages")] | |
public DotnetCliPackageInfo[]? TopLevelPackages { get; init; } | |
[JsonPropertyName("transitivePackages")] | |
public DotnetCliPackageInfo[]? TransitivePackages { get; init; } | |
} | |
public record DotnetCliPackageInfo | |
{ | |
[JsonPropertyName("id")] | |
public required string Id { get; init; } | |
[JsonPropertyName("resolvedVersion")] | |
public required string ResolvedVersion { get; init; } | |
} |
Path | Id | Version | License | IsTransitive |
---|---|---|---|---|
D:/github/guitarrapc/csharp-lab/src/SourceGenerator/SourceGeneratorBasic/SourceGeneratorBasic.csproj | NETStandard.Library | 2.0.3 | https://github.com/dotnet/standard/blob/master/LICENSE.TXT | False |
D:/github/guitarrapc/csharp-lab/src/Logger/LoggerBlazorApp/LoggerBlazorApp.csproj | Microsoft.Extensions.DependencyInjection.Abstractions | 8.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/Logger/LoggerBlazorApp/LoggerBlazorApp.csproj | Microsoft.Extensions.DependencyInjection | 8.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/Logger/LoggerBlazorApp/LoggerBlazorApp.csproj | Microsoft.Extensions.Logging | 8.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/SourceGenerator/SourceGeneratorBasic/SourceGeneratorBasic.csproj | Microsoft.CodeAnalysis.Common | 4.11.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/SourceGenerator/SourceGeneratorBasic/SourceGeneratorBasic.csproj | System.Threading.Tasks.Extensions | 4.5.4 | https://github.com/dotnet/corefx/blob/master/LICENSE.TXT | True |
D:/github/guitarrapc/csharp-lab/src/SourceGenerator/SourceGeneratorBasic/SourceGeneratorBasic.csproj | System.Text.Encoding.CodePages | 7.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/SourceGenerator/SourceGeneratorBasic/SourceGeneratorBasic.csproj | System.Reflection.Metadata | 8.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/SourceGenerator/SourceGeneratorBasic/SourceGeneratorBasic.csproj | System.Runtime.CompilerServices.Unsafe | 6.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/SourceGenerator/SourceGeneratorBasic/SourceGeneratorBasic.csproj | System.Numerics.Vectors | 4.5.0 | https://github.com/dotnet/corefx/blob/master/LICENSE.TXT | True |
D:/github/guitarrapc/csharp-lab/src/SourceGenerator/SourceGeneratorBasic/SourceGeneratorBasic.csproj | System.Memory | 4.5.5 | https://github.com/dotnet/corefx/blob/master/LICENSE.TXT | True |
D:/github/guitarrapc/csharp-lab/src/SourceGenerator/SourceGeneratorBasic/SourceGeneratorBasic.csproj | System.Collections.Immutable | 8.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/SourceGenerator/SourceGeneratorBasic/SourceGeneratorBasic.csproj | System.Buffers | 4.5.1 | https://github.com/dotnet/corefx/blob/master/LICENSE.TXT | True |
D:/github/guitarrapc/csharp-lab/src/SourceGenerator/SourceGeneratorBasic/SourceGeneratorBasic.csproj | Microsoft.NETCore.Platforms | 1.1.0 | http://go.microsoft.com/fwlink/?LinkId=329770 | True |
D:/github/guitarrapc/csharp-lab/src/SourceGenerator/SourceGeneratorBasic/SourceGeneratorBasic.csproj | Microsoft.CodeAnalysis.CSharp | 4.11.0 | MIT | False |
D:/github/guitarrapc/csharp-lab/src/SourceGenerator/SourceGeneratorBasic/SourceGeneratorBasic.csproj | Microsoft.CodeAnalysis.Analyzers | 3.3.4 | http://go.microsoft.com/fwlink/?LinkId=329770 | False |
D:/github/guitarrapc/csharp-lab/src/Logger/LoggerBlazorApp/LoggerBlazorApp.csproj | Utf8StringInterpolation | 1.3.1 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/Logger/LoggerBlazorApp/LoggerBlazorApp.csproj | System.IO.Hashing | 8.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/Logger/LoggerBlazorApp/LoggerBlazorApp.csproj | System.Threading.Channels | 8.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/Logger/LoggerBlazorApp/LoggerBlazorApp.csproj | Microsoft.Extensions.Options | 8.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/Logger/LoggerBlazorApp/LoggerBlazorApp.csproj | Microsoft.Extensions.Logging.Abstractions | 8.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/Logger/LoggerBlazorApp/LoggerBlazorApp.csproj | Microsoft.Extensions.Primitives | 8.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/Logger/LoggerBlazorApp/LoggerBlazorApp.csproj | ZLogger | 2.5.9 | MIT | False |
D:/github/guitarrapc/csharp-lab/src/Logger/LoggerBlazorApp/LoggerBlazorApp.csproj | Microsoft.VisualStudio.Azure.Containers.Tools.Targets | 1.21.0 | EULA.md | False |
D:/github/guitarrapc/csharp-lab/src/Blazor/BlazorServerIPBlockApp/BlazorServerIPBlockApp.csproj | Microsoft.VisualStudio.Azure.Containers.Tools.Targets | 1.21.0 | EULA.md | False |
D:/github/guitarrapc/csharp-lab/src/Blazor/BlazorServerIPBlockApp/BlazorServerIPBlockApp.csproj | IPNetwork2 | 3.0.667 | https://github.com/lduchosal/ipnetwork/blob/master/LICENSE | False |
D:/github/guitarrapc/csharp-lab/src/Blazor/BlazorServerApp/BlazorServerApp.csproj | Microsoft.VisualStudio.Azure.Containers.Tools.Targets | 1.21.0 | EULA.md | False |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.JSInterop | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.JSInterop.WebAssembly | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.Extensions.Options | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.Extensions.Logging.Abstractions | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.Extensions.Primitives | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.Extensions.FileSystemGlobbing | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.Extensions.Logging | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.Extensions.DependencyInjection | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.Extensions.Configuration.FileExtensions | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.Extensions.Configuration.Abstractions | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.Extensions.Configuration | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.Extensions.Configuration.Binder | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.AspNetCore.Metadata | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.AspNetCore.Components.Web | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.AspNetCore.Components.Forms | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.AspNetCore.Components | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.AspNetCore.Authorization | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.AspNetCore.Components.Analyzers | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.NET.Sdk.WebAssembly.Pack | 9.0.0 | http://go.microsoft.com/fwlink/?LinkId=329770 | False |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.NET.ILLink.Tasks | 9.0.0 | MIT | False |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.AspNetCore.Components.WebAssembly.DevServer | 9.0.0 | MIT | False |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.Extensions.FileProviders.Physical | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.Extensions.DependencyInjection.Abstractions | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.Extensions.FileProviders.Abstractions | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.Extensions.Configuration.Json | 9.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/BlazorWasmApp/BlazorWasmApp.csproj | Microsoft.AspNetCore.Components.WebAssembly | 9.0.0 | MIT | False |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | System.Runtime.CompilerServices.Unsafe | 6.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Microsoft.Extensions.Logging.Abstractions | 6.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | System.Diagnostics.DiagnosticSource | 6.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Microsoft.Extensions.Primitives | 6.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Microsoft.Extensions.Options | 6.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Microsoft.Extensions.Logging | 6.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Microsoft.Extensions.Http | 6.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Microsoft.Extensions.DependencyInjection.Abstractions | 6.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Microsoft.Extensions.DependencyInjection | 6.0.0 | MIT | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Grpc.Net.Common | 2.67.0 | Apache-2.0 | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Grpc.Tools | 2.67.0 | Apache-2.0 | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Grpc.Net.ClientFactory | 2.67.0 | Apache-2.0 | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Grpc.Net.Client | 2.67.0 | Apache-2.0 | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Grpc.Core.Api | 2.67.0 | Apache-2.0 | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Grpc.AspNetCore.Server | 2.67.0 | Apache-2.0 | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Google.Protobuf | 3.27.0 | BSD-3-Clause | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Grpc.AspNetCore.Server.ClientFactory | 2.67.0 | Apache-2.0 | True |
D:/github/guitarrapc/csharp-lab/src/LinuxBuild/GrpcService/GrpcService.csproj | Grpc.AspNetCore | 2.67.0 | Apache-2.0 | False |
Id | Version | License |
---|---|---|
Google.Protobuf | 3.27.0 | BSD-3-Clause |
Grpc.AspNetCore | 2.67.0 | Apache-2.0 |
Grpc.AspNetCore.Server | 2.67.0 | Apache-2.0 |
Grpc.AspNetCore.Server.ClientFactory | 2.67.0 | Apache-2.0 |
Grpc.Core.Api | 2.67.0 | Apache-2.0 |
Grpc.Net.Client | 2.67.0 | Apache-2.0 |
Grpc.Net.ClientFactory | 2.67.0 | Apache-2.0 |
Grpc.Net.Common | 2.67.0 | Apache-2.0 |
Grpc.Tools | 2.67.0 | Apache-2.0 |
IPNetwork2 | 3.0.667 | https://github.com/lduchosal/ipnetwork/blob/master/LICENSE |
Microsoft.AspNetCore.Authorization | 9.0.0 | MIT |
Microsoft.AspNetCore.Components | 9.0.0 | MIT |
Microsoft.AspNetCore.Components.Analyzers | 9.0.0 | MIT |
Microsoft.AspNetCore.Components.Forms | 9.0.0 | MIT |
Microsoft.AspNetCore.Components.Web | 9.0.0 | MIT |
Microsoft.AspNetCore.Components.WebAssembly | 9.0.0 | MIT |
Microsoft.AspNetCore.Components.WebAssembly.DevServer | 9.0.0 | MIT |
Microsoft.AspNetCore.Metadata | 9.0.0 | MIT |
Microsoft.CodeAnalysis.Analyzers | 3.3.4 | http://go.microsoft.com/fwlink/?LinkId=329770 |
Microsoft.CodeAnalysis.Common | 4.11.0 | MIT |
Microsoft.CodeAnalysis.CSharp | 4.11.0 | MIT |
Microsoft.Extensions.Configuration | 9.0.0 | MIT |
Microsoft.Extensions.Configuration.Abstractions | 9.0.0 | MIT |
Microsoft.Extensions.Configuration.Binder | 9.0.0 | MIT |
Microsoft.Extensions.Configuration.FileExtensions | 9.0.0 | MIT |
Microsoft.Extensions.Configuration.Json | 9.0.0 | MIT |
Microsoft.Extensions.DependencyInjection | 8.0.0 | MIT |
Microsoft.Extensions.DependencyInjection | 9.0.0 | MIT |
Microsoft.Extensions.DependencyInjection | 6.0.0 | MIT |
Microsoft.Extensions.DependencyInjection.Abstractions | 8.0.0 | MIT |
Microsoft.Extensions.DependencyInjection.Abstractions | 9.0.0 | MIT |
Microsoft.Extensions.DependencyInjection.Abstractions | 6.0.0 | MIT |
Microsoft.Extensions.FileProviders.Abstractions | 9.0.0 | MIT |
Microsoft.Extensions.FileProviders.Physical | 9.0.0 | MIT |
Microsoft.Extensions.FileSystemGlobbing | 9.0.0 | MIT |
Microsoft.Extensions.Http | 6.0.0 | MIT |
Microsoft.Extensions.Logging | 8.0.0 | MIT |
Microsoft.Extensions.Logging | 9.0.0 | MIT |
Microsoft.Extensions.Logging | 6.0.0 | MIT |
Microsoft.Extensions.Logging.Abstractions | 8.0.0 | MIT |
Microsoft.Extensions.Logging.Abstractions | 9.0.0 | MIT |
Microsoft.Extensions.Logging.Abstractions | 6.0.0 | MIT |
Microsoft.Extensions.Options | 8.0.0 | MIT |
Microsoft.Extensions.Options | 9.0.0 | MIT |
Microsoft.Extensions.Options | 6.0.0 | MIT |
Microsoft.Extensions.Primitives | 8.0.0 | MIT |
Microsoft.Extensions.Primitives | 9.0.0 | MIT |
Microsoft.Extensions.Primitives | 6.0.0 | MIT |
Microsoft.JSInterop | 9.0.0 | MIT |
Microsoft.JSInterop.WebAssembly | 9.0.0 | MIT |
Microsoft.NET.ILLink.Tasks | 9.0.0 | MIT |
Microsoft.NET.Sdk.WebAssembly.Pack | 9.0.0 | http://go.microsoft.com/fwlink/?LinkId=329770 |
Microsoft.NETCore.Platforms | 1.1.0 | http://go.microsoft.com/fwlink/?LinkId=329770 |
Microsoft.VisualStudio.Azure.Containers.Tools.Targets | 1.21.0 | EULA.md |
NETStandard.Library | 2.0.3 | https://github.com/dotnet/standard/blob/master/LICENSE.TXT |
System.Buffers | 4.5.1 | https://github.com/dotnet/corefx/blob/master/LICENSE.TXT |
System.Collections.Immutable | 8.0.0 | MIT |
System.Diagnostics.DiagnosticSource | 6.0.0 | MIT |
System.IO.Hashing | 8.0.0 | MIT |
System.Memory | 4.5.5 | https://github.com/dotnet/corefx/blob/master/LICENSE.TXT |
System.Numerics.Vectors | 4.5.0 | https://github.com/dotnet/corefx/blob/master/LICENSE.TXT |
System.Reflection.Metadata | 8.0.0 | MIT |
System.Runtime.CompilerServices.Unsafe | 6.0.0 | MIT |
System.Text.Encoding.CodePages | 7.0.0 | MIT |
System.Threading.Channels | 8.0.0 | MIT |
System.Threading.Tasks.Extensions | 4.5.4 | https://github.com/dotnet/corefx/blob/master/LICENSE.TXT |
Utf8StringInterpolation | 1.3.1 | MIT |
ZLogger | 2.5.9 | MIT |