'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
- 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>
After adding that I installed CodeGenerators.Mvc with nuget package manager.
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.
'IT박스' 카테고리의 다른 글
C #에서 세 가지 메서드를 병렬로 실행하는 가장 간단한 방법 (0) | 2020.11.27 |
---|---|
루비 셀프 키워드 사용? (0) | 2020.11.26 |
대소 문자를 구분하지 않는 문자열 비교 (0) | 2020.11.26 |
putjbtghguhjjjanika와 같은 문자열을 감지하는 방법이 있습니까? (0) | 2020.11.26 |
클래스간에 JAVA 콜백을 어떻게 수행합니까? (0) | 2020.11.26 |