IT박스

'dotnet-aspnet-codegenerator'명령과 일치하는 실행 파일이 없습니다. "

itboxs 2020. 11. 26. 08:06
반응형

'dotnet-aspnet-codegenerator'명령과 일치하는 실행 파일이 없습니다. "


Visual Studio 15 Enterprise (업데이트 3 포함)를 사용하여 ASP.NET Core 프로젝트에 컨트롤러를 추가하려고하면 아래와 같은 오류가 발생합니다.

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


project.json 대신 csproj (Visual Studio 2017)를 사용하는 경우 csproj 파일에 다음을 추가해야합니다.

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

최신 버전의 경우 project.json에서 종속성 아래에 다음을 추가합니다.

"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"
}

도구 아래에 다음이 있습니다.

"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
  "version": "1.1.0-preview4-final",
  "imports": [
    "portable-net45+win8"
  ]
}

버전 번호를 구성 파일에 복사하는 것보다 더 확실한 대답은 NuGet을 사용하여 패키지가 프로젝트에 추가되었는지 확인하는 것입니다.

도구-> NuGet 패키지 관리자-> 솔루션 용 NuGet 패키지 관리.

먼저 모든 것을 최신 상태로 유지하십시오. 업데이트 탭을 선택합니다. 모두 업데이트 확인란을 선택하고 몇 번 실행합니다. 업그레이드를 처음 몇 번 실행했을 때 일부 항목이 다운 그레이드 되더라도 놀라지 마십시오. 일부 종속성은 순차적으로 처리해야하는 것 같습니다. 모든 것을 최신 상태로 유지하려면 약 5 번의 업그레이드가 필요했습니다.

그런 다음 찾아보기 탭에서 CodeGeneration.Tools. 그것을 설치하십시오. 에 대한 동일한 작업을 수행 CodeGenerators.Mvc. 추가 오류 메시지를 찾으면 NuGet에서 누락 된 패키지를 찾을 수 있습니다.


Mac (OS X) 또는 지원되는 Linux 배포를 사용하는 경우 다음을 실행해야합니다.

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

또한 Mac에서는 내 .zshrc(또는 이에 상응하는 bash)

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

그리고 터미널을 다시 시작해야했습니다.


project.json에 다음을 추가하십시오.

종속성 아래 :

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

도구에서 :

"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
    "version": "1.0.0-preview2-final",
    "imports": [
        "portable-net45+win8"
    ]
}
  • 프로젝트에서 사용중인 .NET Core 버전에 따라 버전 번호가 변경 될 수 있습니다.
  • Microsoft.DotNet.InternalAbstractions 누락에 대한 또 다른 오류가 발생할 수 있습니다.이 경우 NuGet에서 가져와야합니다.
  • 종속성의 "Microsoft.VisualStudio.Web.CodeGeneration.Tools"버전이 도구의 "Microsoft.VisualStudio.Web.CodeGeneration.Tools"버전과 일치하는지 확인하십시오.

dotnet core 2.1.1에서는 상황이 바뀌었을 것으로 예상하고 많이 추가 할 필요가 없습니다. 불편을 끼쳐 드려 죄송하지만 상황은 동일하며 사용하려는 도구 또는 패키지의 버전을 업데이트하기 만하면됩니다.

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

이것은 나를 위해 일했습니다. 나는 그것이 여기에 붙어있는 다른 eveyone에게 효과가 있기를 바랍니다. 키 참조가 유의 DotNetCliToolReference하지PackageReference


  1. CSProj 파일에 다음을 추가해야했습니다.

<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. After adding that I installed CodeGenerators.Mvc with nuget package manager.

  2. I was still getting an error saying it can't find some file in the MCD folder so I had to copy and paste the entire bin\Debug\netcoreapp1.1 folder into bin\MCD\Debug\netcoreapp1.1

I ran the scaffolding and it worked!


I encountered the same issue in Visual Studio Mac Community Edition 2017. Prior to running the scaffold command from the project directory, make sure the directory has the Program.cs, Startup.cs and .csproj files. if not, then run the command ls-al and then cd into the project directory which would be inside your current project directory and then execute the scaffold command. An obvious mistake many overlook.


Just add tag 'DotNetCliToolReference ' and package code design on .csproj and execute code-generate command on root solution. Thats worked to me.

.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>

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

Don't forget to build and restore solution after add package ;)


For VS 2015, in project.json file -

under dependencies add -

"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"

then under tools add-

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

In Visual Studio Code change your 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>

I just typed in Linux:

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

So, I did not start with 'dotnet' (my current version: 2.2.300)

I do not like this solution, but it worked.

참고URL : https://stackoverflow.com/questions/41450148/no-executables-found-matching-command-dotnet-aspnet-codegenerator

반응형