Как включить отладку точек останова в Visual Studio для файлов JavaScript, обслуживаемых из отдельного проекта в решении ⇐ C#
Как включить отладку точек останова в Visual Studio для файлов JavaScript, обслуживаемых из отдельного проекта в решении
Я работаю над веб-приложением .NET Core MVC в Visual Studio 2022, состоящим из двух соответствующих проектов:
[*]Проект 1. Основное веб-приложение, в котором я могу без проблем устанавливать и нажимать точки останова в файлах JavaScript. [*]Проект 2: вспомогательный проект C#, включенный в решение и содержащий стандартные файлы JavaScript, которые я активно разрабатываю.
Я использую файлы JavaScript из проекта 2 в проекте 1 с помощью пользовательской конфигурации статических файлов, но сталкиваюсь с проблемами при установке точек останова в этих файлах непосредственно в Visual Studio; они отображаются как «несвязанные точки останова». Установка точек останова в DevTools браузера для этих файлов работает и обычно вызывает перерывы в Visual Studio.
Вот краткий фрагмент моей реализации статических файлов:
public static IApplicationBuilder UseStaticFilesCustom (это приложение WebApplication) { вар env = app.Environment; var staticAllowedExtensions = new[] { ".png", ".jpg", ".gif", ".svg", ".ico", ".ttf", ".woff", ".woff2", ".js" ", ".css", ".map" }; вар разрешенные файлы = новый [] { "manifest.json" }; // файлы, которым нам нужно разрешить обход приведенного выше списка константная строка cacheMaxAge = "604800"; var dllPath = Path.Join(Path.GetDirectoryName(Assembly.GetEntryAssembly()!.Location), "projectDllNameHere"); вар EmbeddedProvider = новый ManifestEmbeddedFileProvider(Assembly.LoadFrom(dllPath), "/Static"); app.UseStaticFiles(новые StaticFileOptions() { FileProvider = EmbeddedProvider, ПутьЗапроса = "/Статический", OnPrepareResponse = ctx => { вар имя_файла = ctx.File.Name.ToLower(); вар fileExtension = Path.GetExtension(fileName); if (!staticAllowedExtensions.Contains(fileExtension) && !allowedFiles.Contains(fileName, StringComparer.OrdinalIgnoreCase)) { Debug.WriteLine($"ОШИБКА: попытка загрузки {ctx.Context.Request.Path}"); ctx.Context.Response.StatusCode = 407; // Не найдено возвращаться; } ctx.Context.Response.Headers.Append("Cache-Control", $"public, max-age={cacheMaxAge}"); } }); приложение возврата; } Я не использую никакие внешние упаковщики или компиляторы JavaScript — только встроенный отладчик Visual Studio. Похоже, что Visual Studio неправильно сопоставляет файлы JavaScript из Проекта 2 с их источником, что не позволяет мне устанавливать точки останова непосредственно из VS.
Есть ли обходной путь/решение этой проблемы?
Я работаю над веб-приложением .NET Core MVC в Visual Studio 2022, состоящим из двух соответствующих проектов:
[*]Проект 1. Основное веб-приложение, в котором я могу без проблем устанавливать и нажимать точки останова в файлах JavaScript. [*]Проект 2: вспомогательный проект C#, включенный в решение и содержащий стандартные файлы JavaScript, которые я активно разрабатываю.
Я использую файлы JavaScript из проекта 2 в проекте 1 с помощью пользовательской конфигурации статических файлов, но сталкиваюсь с проблемами при установке точек останова в этих файлах непосредственно в Visual Studio; они отображаются как «несвязанные точки останова». Установка точек останова в DevTools браузера для этих файлов работает и обычно вызывает перерывы в Visual Studio.
Вот краткий фрагмент моей реализации статических файлов:
public static IApplicationBuilder UseStaticFilesCustom (это приложение WebApplication) { вар env = app.Environment; var staticAllowedExtensions = new[] { ".png", ".jpg", ".gif", ".svg", ".ico", ".ttf", ".woff", ".woff2", ".js" ", ".css", ".map" }; вар разрешенные файлы = новый [] { "manifest.json" }; // файлы, которым нам нужно разрешить обход приведенного выше списка константная строка cacheMaxAge = "604800"; var dllPath = Path.Join(Path.GetDirectoryName(Assembly.GetEntryAssembly()!.Location), "projectDllNameHere"); вар EmbeddedProvider = новый ManifestEmbeddedFileProvider(Assembly.LoadFrom(dllPath), "/Static"); app.UseStaticFiles(новые StaticFileOptions() { FileProvider = EmbeddedProvider, ПутьЗапроса = "/Статический", OnPrepareResponse = ctx => { вар имя_файла = ctx.File.Name.ToLower(); вар fileExtension = Path.GetExtension(fileName); if (!staticAllowedExtensions.Contains(fileExtension) && !allowedFiles.Contains(fileName, StringComparer.OrdinalIgnoreCase)) { Debug.WriteLine($"ОШИБКА: попытка загрузки {ctx.Context.Request.Path}"); ctx.Context.Response.StatusCode = 407; // Не найдено возвращаться; } ctx.Context.Response.Headers.Append("Cache-Control", $"public, max-age={cacheMaxAge}"); } }); приложение возврата; } Я не использую никакие внешние упаковщики или компиляторы JavaScript — только встроенный отладчик Visual Studio. Похоже, что Visual Studio неправильно сопоставляет файлы JavaScript из Проекта 2 с их источником, что не позволяет мне устанавливать точки останова непосредственно из VS.
Есть ли обходной путь/решение этой проблемы?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Visual Studio C++, точки останова не останавливают отладку DLL (GODOT GDExtention)
Anonymous » » в форуме C++ - 0 Ответы
- 32 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Visual Studio C++, точки останова не останавливают отладку DLL (GODOT GDExtention)
Anonymous » » в форуме C++ - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Точки останова TailwindCSS не срабатывают при достижении определенных точек останова.
Anonymous » » в форуме CSS - 0 Ответы
- 95 Просмотры
-
Последнее сообщение Anonymous
-