Cuando intenta agregar un Controlador en un ASP.NET proyecto Básico, el uso de Visual Studio 15 de Empresa con Update 3, me sale el siguiente error:

"The was an error running the selected code generator: No executables found matching command 'dotnet-aspnet-codegenerator'"

12 Comentarios

  1. 150

    Si usted está usando csproj (Visual Studio 2017) en lugar de proyecto.json, entonces usted necesita para agregar lo siguiente a tu archivo csproj:

        <ItemGroup>
            <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.1" />
        </ItemGroup>
    • En La Actualidad – Version=»1.0.0″
    • He » Version=»1.0.1″ ¿la mejor manera de comprobar la versión más reciente? Y puedo instalar esta Referencia con dotnet cli sí mismo? Cuando traté de dotnet add package Microsoft.VisualStudio.Web.CodeGeneration.Tools se creó un <PackageReference>, pero necesitaba un <DotNetCliToolReference> como johnnycardy respondida aquí… Una de las ventajas de dotnet add package es que (parece?) va a encontrar y añadir un elemento con la última versión de atributo, por lo que sólo manualmente convertido desde <PackageReference> -> <DotNetCliToolReference>
    • Parece 1.0.1 es la última a menos que usted está utilizando una vista previa. nuget.org/packages/…
    • Lo que si esta línea es la que ya existe en el archivo csproj y todavía estamos recibiendo el mismo error? Estoy frente a este error en el VS de 2017 (la liberación y la última actualización instalada a la fecha)
    • La reconstrucción de la solución y se debe trabajar. Si no, cierre y vuelva a abrir la solución.
    • es visual studio error?
    • ¿Alguna vez conseguir que funcione? Si es así, ¿qué hiciste. La línea ya está en csproj, y dotnet restaurar parece funcionar pero cuando abro administrar paquetes de nuget, el CodeGeneration.Herramientas todavía no está instalado.
    • Sí, lo hice. Fue a causa de una dependencia en el archivo de proyecto que no era compatible con el «, a continuación, la versión» de la .NET CORE que estaba usando. He quitado esa dependencia, y eligió la correcta la versión preliminar y funcionó. Ahora estoy en .NET CORE 2.0 y actualizado todos mis dependencias .NET CORE 2.0, Así que no tiene el problema. Lo siento, yo nose recordar que específica incompatible dependencia.
    • Mi actual depencies mira como estos:
    • Gracias. Lol me di cuenta de que ese era el problema (todo lo que ahora es 2.0.0), y resuelto el codegenerator de que todavía no se han encontrado con los dos símbolo del sistema de cmd para el cmd. Aquí los detalles para los futuros lectores: stackoverflow.com/questions/47765196/…

  2. 8

    Para la versión más reciente, en el proyecto.json agregue lo siguiente en las dependencias de:

    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.1.0-preview4-final",
      "type": "build"
    },
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
      "type": "build",
      "version": "1.1.0-preview4-final"
    }

    y las siguientes herramientas:

    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.1.0-preview4-final",
      "imports": [
        "portable-net45+win8"
      ]
    }
    • No hay ningún proyecto».json» archivo para el nuevo asp.net la versión core.
  3. 6

    De una forma más robusta respuesta de copiar los números de versión en el archivo de configuración es el uso de NuGet para asegurarse de que los paquetes se suman a su proyecto.

    Herramientas -> NuGet Package Manager -> Administrar Paquetes de NuGet para la Solución.

    Primer lugar, obtener todo lo que hasta la fecha. Elija la pestaña Actualizaciones. Marque la casilla para Actualizar Todos y ejecutar este un par de veces. No se sorprenda si algunas cosas degrada el primer par de veces que se ejecute la actualización. Algunas dependencias tienen que ser manejados de forma secuencial. Me tomó cerca de 5 mejoras para conseguir todo lo que hasta la fecha.

    A continuación, en la pestaña navegar, buscar CodeGeneration.Tools. Instalarlo. Hacer lo mismo para CodeGenerators.Mvc. Como encontrar mensajes de error adicionales, usted debería ser capaz de encontrar ninguna falta en los paquetes de NuGet.

    • Esto es lo que veo cuando intento instalar CodeGeneration.Tools a mi proyecto: Package 'Microsoft.EntityFrameworkCore.Tools.DotNet 1.0.1' has a package type 'DotnetCliTool' that is not supported by project
  4. 4

    Si está utilizando Mac (OS X) o cualquier distribución de Linux, usted tiene que ejecutar:

    dotnet tool install --global dotnet-aspnet-codegenerator --version 2.2.3

    Además, en Mac he añadido a mi .zshrc (o bash equivalente)

    export PATH=$HOME/.dotnet/tools:$PATH

    Y tuve que asegúrese de reiniciar el Terminal.

    • La adición .dotnet/herramientas a mi CAMINO en la Menta 19 resuelto mi problema.
  5. 3

    Añada lo siguiente a su proyecto.json:

    Bajo dependencias:

    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
        "version": "1.0.0-preview2-final",
        "type": "build"
    }

    Bajo herramientas:

    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
        "version": "1.0.0-preview2-final",
        "imports": [
            "portable-net45+win8"
        ]
    }
    • Número de versión puede cambiar dependiendo de la versión de .NET Core está utilizando en el proyecto
    • Usted puede obtener de otro error acerca de Microsoft.DotNet.InternalAbstractions falta, en cuyo caso se deberá obtener de NuGet
    • Asegurarse «de Microsoft.VisualStudio.Web.CodeGeneration.Herramientas» de la versión en dependencias de los partidos «de Microsoft.VisualStudio.Web.CodeGeneration.Herramientas» de la versión en herramientas
    • Gracias por publicar su solución y, específicamente, que describe la variación de la versión # para diferentes usuarios, etc. Me salvó de toneladas de horas.
  6. 3

    En dotnet básicos 2.1.1 cabría esperar que la situación ha cambiado y puede que no sea necesario añadir mucho. Me siento molestarle, pero la situación es la misma y todo lo que necesita hacer ahora es actualizar su versión de la herramienta o el paquete que desea utilizar.

     <ItemGroup>
        <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
    </ItemGroup>

    Esto funcionó para mí. Espero que funcione para eveyone otra cosa que se queda atascado aquí. Tenga en cuenta que la clave de referencia es DotNetCliToolReference no PackageReference

  7. 2
    1. He tenido que añadir lo siguiente a mi CSProj de archivo:

    HTML:

    <ItemGroup>
        <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0-msbuild3-final" />
        <DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="1.0.0-msbuild3-final" />
        <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0-msbuild3-final" />
    </ItemGroup>

    1. Después de añadir que he instalado CodeGenerators.Mvc con nuget package manager.

    2. Yo todavía estaba recibiendo un error diciendo que no puede encontrar los archivos en la MCD carpeta así que tuve que copiar y pegar todo el bin\Debug\netcoreapp1.1 carpeta bin\MCD\Debug\netcoreapp1.1

    Me encontré con el andamiaje y funcionó!

  8. 2

    He encontrado con el mismo problema en Visual Studio Mac de la Comunidad de la Edición de 2017. Antes de ejecutar el scaffold comando desde el directorio del proyecto, asegúrese de que el directorio tiene la Program.cs, Startup.cs y .csproj archivos. si no, a continuación, ejecute el comando ls-al y, a continuación, cd en el directorio del proyecto, que sería dentro de su actual directorio de proyecto y, a continuación, ejecutar el scaffold comando. Un error evidente que muchos pasan por alto.

    • Esta fue la solución para mí (y tienes razón muy obvia! LOL). Yo estaba usando JetBrains Piloto (que tiene una solución y sub independiente de la carpeta para el proyecto) y seguir las instrucciones para vscode que no. Una vez me subí a la carpeta del proyecto que la solución no funcionó. Piloto valores predeterminados es la Terminal de la solución. 🙂
  9. 1

    Acaba de agregar la etiqueta de ‘DotNetCliToolReference’ y el código del paquete de diseño en .csproj y ejecutar código a generar comando en la solución de raíz. Eso funcionó para mí.

    .csproj
    <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.3" />
    </ItemGroup>

    <ItemGroup>
    ...
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.3" />
    </ItemGroup>

    Comando
    PS C:\Users\miche\projetos\asp_net_core\crud> dotnet aspnet-codegenerator controller -name ProdutosController -m Produto -dc AppDataContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries

    No te olvides de construir y restaurar la solución después de añadir el paquete 😉

  10. 0

    Para VS de 2015, en el proyecto.archivo json –

    bajo las dependencias de agregar –

    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview2-final",
      "imports": [
        "portable-net45+win8"
      ]
    },
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": "1.0.0-preview2-final"

    a continuación, en herramientas de complemento

    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview2-final",
      "imports": [
        "portable-net45+win8"
      ]
    } 
  11. 0

    En el Código de Visual Studio cambiar su yourproject.csproj

    <pre>
    <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.App" />
        <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.1.2" PrivateAssets="All" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.1.4" />
        <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.6" PrivateAssets="All" />
        <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
      </ItemGroup>
    
      <ItemGroup>
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" version= "2.1.0-preview1-final" />
        <PackageReference Include="Microsoft.Extensions.SecretManager.Tools" version= "2.0.2" />
        <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
      </ItemGroup>
      <ItemGroup>
      <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.2" />
      <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" version="2.1.0-preview1-final" />
      </ItemGroup>`enter code here`
    </pre>
    • pre etiqueta no está allí
  12. 0

    Me acaba de escribir en Linux:

    ~/.dotnet/tools/dotnet-aspnet-codegenerator razorpage -m Movie -dc RazorPagesMovieContext -udl -outDir Pages/Movies --referenceScriptLibraries

    Así, yo no comienza con ‘dotnet» (mi versión actual: 2.2.300)

    No me gusta esta solución, pero funcionó.

Dejar respuesta

Please enter your comment!
Please enter your name here