Description
Functional impact
When editing libman.json in Visual Studio, if there is a library entry using the filesystem provider, and the file doesn't exist, it will throw an exception in the editor.
Minimal repro steps
- Have a project with the following libman.json:
{
"version": "1.0",
"defaultProvider": "filesystem",
"libraries": [
{
"provider": "filesystem",
"library": "node_modules/jquery/dist/",
"destination": "wwwroot/lib/",
"files": [
"jquery.min.js"
]
}
]
}
- Make sure the source files (in the node_modules folder) do not exist
- Make an edit in the editor
Expected result
Edits can happen fine, a restore will fail with an appropriate error
Actual result
As soon as I make an edit (e.g. type any character), I get an error from VS and an entry in the ActivityLog:
System.AggregateException: One or more errors occurred. ---> Microsoft.Web.LibraryManager.Contracts.InvalidLibraryException: The "node_modules/jquery/dist/" library could not be resolved by the "filesystem" provider at Microsoft.Web.LibraryManager.Providers.FileSystem.FileSystemCatalog.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject) --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) at System.Threading.Tasks.Task
1.GetResultCore(Boolean waitCompletionNotification) at System.Threading.Tasks.Task
1.get_Result() at Microsoft.Web.LibraryManager.Vsix.FilesCompletionProvider.d__2.MoveNext() at System.Collections.Generic.List1.InsertRange(Int32 index, IEnumerable
1 collection) at Microsoft.JSON.Editor.Completion.JSONCompletionSource.<>c__DisplayClass3_2.b__0() at Microsoft.Web.Editor.Utility.GuardedOperations.InvokeExtensionPoint(Object errorSource, Action action) ---> (Inner Exception #0) Microsoft.Web.LibraryManager.Contracts.InvalidLibraryException: The "node_modules/jquery/dist/" library could not be resolved by the "filesystem" provider at Microsoft.Web.LibraryManager.Providers.FileSystem.FileSystemCatalog.d__4.MoveNext() --- End of stack trace from previous location where exception was thrown --- at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)<---
--