Подтвердить что ты не робот

Ни один исполняемый файл не нашел совпадающую команду "dotnet-aspnet-codegenerator"

При попытке добавить контроллер в проект ASP.NET Core с помощью Visual Studio 15 Enterprise с Update 3, я получаю следующую ошибку:

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

4b9b3361

Ответ 1

Если вы используете csproj (Visual Studio 2017) вместо project.json, вам нужно добавить в файл csproj следующее:

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

Ответ 2

Для последней версии в 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"
  ]
}

Ответ 3

Более надежный ответ, чем копирование номеров версий в ваш файл конфигурации, - это использование NuGet для обеспечения того, чтобы пакеты были добавлены в ваш проект.

Инструменты → Диспетчер пакетов NuGet → Управление пакетами NuGet для решения.

Во-первых, обновите все. Перейдите на вкладку "Обновления". Установите флажок "Обновить все" и запустите его несколько раз. Не удивляйтесь, если некоторые вещи понижают первые пару раз, когда вы запускаете обновление. Кажется, что некоторые зависимости обрабатываются последовательно. Мне потребовалось около 5 обновлений, чтобы обновить их.

Затем на вкладке просмотра найдите CodeGeneration.Tools. Установите его. Сделайте то же самое для CodeGenerators.Mvc. Когда вы найдете дополнительные сообщения об ошибках, вы сможете найти недостающие пакеты в NuGet.

Ответ 4

Если вы используете Mac (OS X) или любой другой поддерживаемый дистрибутив Linux, вам нужно запустить:

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

Кроме того, на Mac я добавил в свой .zshrc (или эквивалент bash)

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

И я должен был обязательно перезапустить Терминал.

Ответ 5

Добавьте в свой проект 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 в инструментах

Ответ 6

  • Мне пришлось добавить в файл 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>

Ответ 7

Я столкнулся с теми же проблемами в Visual Studio Mac Community Edition 2017. Перед запуском scaffold команды из каталога проекта, убедитесь, что каталог имеет Program.cs, Startup.cs и .csproj файлов. если нет, то выполните команду ls-al и затем cd в каталог проекта, который будет находиться в вашем текущем каталоге проекта, а затем выполните команду scaffold. Очевидную ошибку многие упускают из виду.

Ответ 8

В DotNet Core 2.1.1 вы ожидаете, что ситуация изменилась, и вам не нужно много добавлять. Извините, что раздражаю вас, но ситуация такая же, и все, что вам нужно сделать сейчас, это обновить свою версию инструмента или пакета, который вы хотите использовать.

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

Это сработало для меня. Я надеюсь, что это работает для всех, кто застрянет здесь. Обратите внимание, что ключевой ссылкой является DotNetCliToolReference не PackageReference

Ответ 9

Просто добавьте тег 'DotNetCliToolReference' и дизайн кода пакета в .csproj и выполните команду code-generate для корневого решения. Это сработало для меня.

.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

Не забудьте собрать и восстановить решение после добавления пакета;)

Ответ 10

Для VS 2015, в файле project.json -

в зависимостях 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"

то под инструментами add-

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

Ответ 11

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

Ответ 12

Я просто набрал в Linux:

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

Итак, я не начал с "dotnet" (моя текущая версия: 2.2.300)

Мне не нравится это решение, но оно сработало.