bjorkstromm / depends

Tool for generating dependency trees for .NET projects
MIT License
556 stars 43 forks source link

ArgumentException when using --package #36

Open loop-evgeny opened 8 months ago

loop-evgeny commented 8 months ago

Same error as #32, but I'm not using Central Package Management. dotnet-depends version 0.70 on Windows.

md NewConsoleApp
cd NewConsoleApp
dotnet new console
dotnet depends --package test

Unhandled exception. System.ArgumentException: Value cannot be null or an empty string. (Parameter 'value')
   at NuGet.Versioning.NuGetVersion.Parse(String value)
   at Depends.Core.DependencyAnalyzer.Analyze(String packageId, String version, String framework) in /home/runner/work/depends/depends/src/Depends.Core/DependencyAnalyzer.cs:line 4
2
   at Depends.Program.GetDependencyGraph(ILoggerFactory loggerFactory) in /home/runner/work/depends/depends/src/Depends/Program.cs:line 128
   at Depends.Program.OnExecute() in /home/runner/work/depends/depends/src/Depends/Program.cs:line 114
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
   at System.Reflection.MethodInvoker.Invoke(Object obj, IntPtr* args, BindingFlags invokeAttr)
--- End of stack trace from previous location ---
   at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.Invoke(MethodInfo method, Object instance, Object[] arguments)
   at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.OnExecute(ConventionContext context, CancellationToken cancellationToken)
   at McMaster.Extensions.CommandLineUtils.Conventions.ExecuteMethodConvention.<>c__DisplayClass0_0.<<Apply>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync(String[] args, CancellationToken cancellationToken)
   at McMaster.Extensions.CommandLineUtils.CommandLineApplication.ExecuteAsync[TApp](CommandLineContext context, CancellationToken cancellationToken)
   at McMaster.Extensions.CommandLineUtils.CommandLineApplication.Execute[TApp](CommandLineContext context)
   at McMaster.Extensions.CommandLineUtils.CommandLineApplication.Execute[TApp](IConsole console, String[] args)
   at McMaster.Extensions.CommandLineUtils.CommandLineApplication.Execute[TApp](String[] args)
   at Depends.Program.Main(String[] args) in /home/runner/work/depends/depends/src/Depends/Program.cs:line 16
loop-evgeny commented 8 months ago

Debugged the code a bit and turns out this is because --version (and also --framework) must be specified when --package is. Would be nice these were read automatically from the project file. Failing that, at least a good error message to tell the user that these are required.