ASPNET 代码生成器错误: "path is empty"



我正试图为一个新的构建Identity页面。NET 6.0项目(根据ASP.NET Core MVC模板创建(。当我运行下面的命令时;路径为空";(我还包含了build命令输出,以显示项目构建成功(。

> dotnet build
Microsoft (R) Build Engine version 17.0.0+c9eb9dd64 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.
Determining projects to restore...
All projects are up-to-date for restore.
ExampleProject -> C:...binDebugnet6.0ExampleProject.dll
Build succeeded.
0 Warning(s)
0 Error(s)
Time Elapsed 00:00:01.52

> dotnet aspnet-codegenerator identity -lf
[Trace]: Command Line: identity -lf
Building project ...
[Trace]: Command Line: --no-dispatch --port-number 64193 identity -lf --dispatcher-version 6.0.0+cc9d1f5236d926269a0471042f72bf83b498509c
Scaffolding failed.
The path is empty. (Parameter 'path')
[Trace]:    at System.IO.Path.GetFullPath(String path)
at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory, Boolean isNormalized, EnumerationOptions options)
at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized)
at System.IO.Enumeration.FileSystemEnumerableFactory.UserFiles(String directory, String expression, EnumerationOptions options)
at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)
at Microsoft.VisualStudio.Web.CodeGeneration.Msbuild.ProjectContextWriter.GetScaffoldingAssemblies(IEnumerable`1 dependencies)
at Microsoft.DotNet.Scaffolding.Shared.ProjectModel.ProjectContextExtensions.AddPackageDependencies(IProjectContext projectInformation, String projectAssetsFile)
at Microsoft.VisualStudio.Web.CodeGeneration.Design.Program.<>c__DisplayClass4_0.<<Execute>b__0>d.MoveNext()
RunTime 00:00:02.43

这个错误;路径为空;当试图通过Add->在Visual Studio 2022中查看上下文菜单。

这是配置问题,还是代码生成器中的错误?

编辑(2021-11-29(:从头开始复制此错误后,它似乎发生在将Microsoft.AspNetCore.IdentityNuget包添加到项目后,如下所示。

复制步骤:

  1. 使用模板"在Visual Studio 2022中创建新项目;ASP。NET核心Web应用程序(模型视图控制器(";目标。NET 6.0,身份验证类型设置为"个人帐户"。

  2. 添加以下Nuget包:

    • 微软。VisualStudio。网状物代码生成。设计(用于支撑脚手架(
  3. 保存所有文件(Ctrl+Shift+S(并重新生成解决方案。

  4. 此时,打开cmd到项目文件的目录并运行";dotnet aspnet代码生成器标识-lf";以确保脚手架的可用标识视图列表成功显示。

  5. 添加以下Nuget包:

    • 微软。AspNetCore。身份
  6. 保存所有文件(Ctrl+Shift+S(并重新生成解决方案。

  7. 尝试重新运行命令";dotnet aspnet代码生成器标识-lf";并且应该发生以下错误:

    [Trace]: Command Line: identity -lf
    Building project ...
    [Trace]: Command Line: --no-dispatch --port-number 57313 identity -lf --dispatcher-version 6.0.0+cc9d1f5236d926269a0471042f72bf83b498509c
    Scaffolding failed.
    The path is empty. (Parameter 'path')
    [Trace]:    at System.IO.Path.GetFullPath(String path)
    at System.IO.Enumeration.FileSystemEnumerator`1..ctor(String directory, Boolean isNormalized, EnumerationOptions options)
    at System.IO.Enumeration.FileSystemEnumerable`1..ctor(String directory, FindTransform transform, EnumerationOptions options, Boolean isNormalized)
    at System.IO.Enumeration.FileSystemEnumerableFactory.UserFiles(String directory, String expression, EnumerationOptions options)
    at System.IO.Directory.InternalEnumeratePaths(String path, String searchPattern, SearchTarget searchTarget, EnumerationOptions options)
    at Microsoft.VisualStudio.Web.CodeGeneration.Msbuild.ProjectContextWriter.GetScaffoldingAssemblies(IEnumerable`1 dependencies)
    at Microsoft.DotNet.Scaffolding.Shared.ProjectModel.ProjectContextExtensions.AddPackageDependencies(IProjectContext projectInformation, String projectAssetsFile)
    at Microsoft.VisualStudio.Web.CodeGeneration.Design.Program.<>c__DisplayClass4_0.<<Execute>b__0>d.MoveNext()
    RunTime 00:00:03.53
    

如问题评论和本网站所述

https://github.com/dotnet/Scaffolding/issues/1713

从相关解决方案中的所有项目中删除nuget包Microsoft.AspNetCore.Identity就解决了这个问题。

在许多情况下(也在我的情况下(,它足以参考nuget包Microsoft.AspNetCore.Identity.EntityFrameworkCore

相关内容

最新更新