Update 3を適用したVisual Studio 15 Enterpriseを使用して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
そして、必ずターミナルを再起動する必要がありました。
ドットネットコア2.1.1では、状況が変化し、多くを追加する必要がないことが予想されます。ご迷惑をおかけして申し訳ありませんが、状況は同じであり、今必要なことは、使用するツールまたはパッケージのバージョンを更新することだけです。
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
</ItemGroup>
これは私のために働いた。ここで動けなくなる他のすべての人のために機能することを願っています。キー参照はDotNetCliToolReference
ではなくPackageReference
であることに注意してください
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"
]
}
<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>
それを追加した後、nugetパッケージマネージャーでCodeGenerators.Mvcをインストールしました。
MCDフォルダーにファイルが見つからないというエラーが表示されるため、bin\Debug\netcoreapp1.1フォルダー全体をbin\MCD\Debug\netcoreapp1.1にコピーして貼り付ける必要がありました。
足場を走らせて、うまくいきました!
Visual Studio Mac Community Edition 2017で同じ問題が発生しました。プロジェクトディレクトリからscaffold
コマンドを実行する前に、ディレクトリにProgram.cs
、Startup.cs
、および.csproj
ファイルがあることを確認してください。そうでない場合は、コマンドls-al
を実行してから、現在のプロジェクトディレクトリ内にあるプロジェクトディレクトリにcd
を実行し、scaffold
コマンドを実行します。多くの人が見落としている明らかな間違い。
タグ 'DotNetCliToolReference'を追加し、.csprojおよびルートソリューションでコード生成コマンドを実行にコードデザインをパッケージ化します。それは私に働いた。
。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>
コマンドPS C:\Users\miche\projetos\asp_net_core\crud> dotnet aspnet-codegenerator controller -name ProdutosController -m Produto -dc AppDataContext --relativeFolderPath Controllers --useDefaultLayout --referenceScriptLibraries
パッケージを追加した後、ソリューションをビルドして復元することを忘れないでください;)
VS 2015の場合、project.jsonファイルで-
依存関係の下で追加-
"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"
次に、ツールの下に追加-
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.0.0-preview2-final",
"imports": [
"portable-net45+win8"
]
}
Linuxで入力しました。
~/.dotnet/tools/dotnet-aspnet-codegenerator razorpage -m Movie -dc RazorPagesMovieContext -udl -outDir Pages/Movies --referenceScriptLibraries
だから、私は「ドットネット」で始めませんでした(私の現在のバージョン:2.2.300)
このソリューションは好きではありませんが、うまくいきました。
Visual Studio Codeで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>