web-dev-qa-db-ja.com

コマンド 'dotnet-aspnet-codegenerator'に一致する実行可能ファイルが見つかりませんでした

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

62
Darren Alfonso

Project.jsonの代わりにcsproj(Visual Studio 2017)を使用している場合、csprojファイルに次を追加する必要があります。

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

最新バージョンの場合、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"
  ]
}
8
Techy

バージョン番号を構成ファイルにコピーするよりも堅牢な答えは、NuGetを使用してパッケージがプロジェクトに追加されるようにすることです。

ツール-> NuGetパッケージマネージャー->ソリューションのNuGetパッケージの管理。

まず、すべてを最新の状態にします。 [更新]タブを選択します。 [すべて更新]チェックボックスをオンにして、これを数回実行します。アップグレードを実行した最初の数回でいくつかの機能がダウングレードされても驚かないでください。一部の依存関係は、順次処理する必要があるようです。すべてを最新の状態にするには、約5つのアップグレードが必要でした。

次に、参照タブで、CodeGeneration.Toolsを検索します。それをインストールします。 CodeGenerators.Mvcについても同じことを行います。追加のエラーメッセージを見つけると、NuGetで不足しているパッケージを見つけることができるはずです。

6
Josiah

Mac(OS X)またはサポートされているLinuxディストリビューションを使用している場合、次を実行する必要があります。

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

さらに、Macでは.zshrc(またはbashと同等)に追加しました

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

そして、必ずターミナルを再起動する必要がありました。

4
Paul

ドットネットコア2.1.1では、状況が変化し、多くを追加する必要がないことが予想されます。ご迷惑をおかけして申し訳ありませんが、状況は同じであり、今必要なことは、使用するツールまたはパッケージのバージョンを更新することだけです。

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

これは私のために働いた。ここで動けなくなる他のすべての人のために機能することを願っています。キー参照はDotNetCliToolReferenceではなくPackageReferenceであることに注意してください

3
Oge Nwike

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」バージョンと一致することを確認してください
3
Darren Alfonso
  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. それを追加した後、nugetパッケージマネージャーでCodeGenerators.Mvcをインストールしました。

  2. MCDフォルダーにファイルが見つからないというエラーが表示されるため、bin\Debug\netcoreapp1.1フォルダー全体をbin\MCD\Debug\netcoreapp1.1にコピーして貼り付ける必要がありました。

足場を走らせて、うまくいきました!

2
Tyrone Moodley

Visual Studio Mac Community Edition 2017で同じ問題が発生しました。プロジェクトディレクトリからscaffoldコマンドを実行する前に、ディレクトリにProgram.csStartup.cs、および.csprojファイルがあることを確認してください。そうでない場合は、コマンドls-alを実行してから、現在のプロジェクトディレクトリ内にあるプロジェクトディレクトリにcdを実行し、scaffoldコマンドを実行します。多くの人が見落としている明らかな間違い。

2
Heike

タグ '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

パッケージを追加した後、ソリューションをビルドして復元することを忘れないでください;)

1

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"
  ]
} 
0
Mayeed

Linuxで入力しました。

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

だから、私は「ドットネット」で始めませんでした(私の現在のバージョン:2.2.300)

このソリューションは好きではありませんが、うまくいきました。

0
Rob Lassche

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>
0
kasif Shaikh