Не найдено исполняемого файла, соответствующего команде dotnet-bundle во время WebDeploy для ASP.NET Core

Я новичок в ASP.NET и пытаюсь опубликовать веб-приложение. Я пробовал с 2 разными хостами выполнить веб-развертывание, но продолжаю получать ошибку: -

Не найдено исполняемого файла, соответствующего команде "dotnet-bundle"

С чем это связано?

Project.Json

{
"dependencies": {
"Bitly.Net": "0.0.6",
"BitlyAPI": "1.0.3",
"BundlerMinifier.Core": "2.2.281",
"Common.Logging": "3.4.0-Beta2",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.1",
"Microsoft.AspNetCore.Razor.Tools": {
  "version": "1.0.0-preview2-final",
  "type": "build"
},
"Microsoft.AspNetCore.Routing": "1.0.1",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
"Parse": "1.7.0",
"Spring.Social.Twitter": "2.0.0-M1",
"Stormpath.AspNetCore": "0.7.0"
},

"tools": {
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
},

"frameworks": {
"net46": {
  "frameworkAssemblies": {
  }
}
},

"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},

"publishOptions": {
"include": [
  "wwwroot",
  "**/*.cshtml",
  "appsettings.json",
  "web.config"
]
},

"scripts": {
"prepublish": [ "bower install", "dotnet bundle" ],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
},
"userSecretsId": "aspnet-ParseAppDashboard-20161008081***"
}

person Phill Wiggins    schedule 16.10.2016    source источник


Ответы (3)


В разделе инструменты файла Project.json добавьте следующее:

  "tools": {
    "BundlerMinifier.Core": "2.2.281",
    ....

При сохранении Project.json VS2015 автоматически восстанавливает пакеты.

Если это не сработало, щелкните проект правой кнопкой мыши и выберите параметр «Восстановить пакеты».

Если это не помогло, попробуйте выполнить восстановление с помощью команды dotnet restore CLI.

Посмотрим, поможет ли это.

person Sanket    schedule 16.10.2016
comment
Похоже, это устранило эту проблему. Большое спасибо @Sanket - person Phill Wiggins; 16.10.2016
comment
Мне это тоже помогло, но я сделал дополнительный шаг, чтобы исправить сообщение об ошибке Version for package 'BundlerMinifier.Core' could not be resolved. после того, как сообщение No executable found matching command "dotnet-bundle". исчезло. Итак, я щелкнул проект правой кнопкой мыши и нажал команду Restore Packages. - person Oleg Burov; 05.11.2016
comment
@OlegBurov Спасибо, что поделились своим решением. У меня была та же проблема, что и у вас, и после применения вашего дополнительного шага она решила мою проблему. Надеюсь, ваш комментарий поможет и другим. - person nam; 15.11.2016
comment
Есть ли у нас какие-либо идеи, почему BundlerMinifier.Core не включен по умолчанию в новое базовое приложение ASP.Net? (Я предполагаю, что теоретически я создал свое приложение как приложение ASP.Net Core 1.0 и с тех пор обновился до 1.1. Может ли это быть частью проблемы?) - person Joel B; 14.12.2016
comment
Нет @JoelB ... Я не уверен, почему BundlerMinifier не включен по умолчанию. - person Sanket; 14.12.2016
comment
В случае ОШИБКИ: не удалось найти ... пользователя ... \ .nuget \ packages \ .tools после редактирования project.json просто удалите файл project.json.lock .. Visual Studio создаст его заново, и будет загружен отсутствующий пакет. . - person Maxim; 20.02.2017

С конца 2016 года (RC3 и новее, VS2017 и новее) перейти в формат файла .csproj, добавить

<DotNetCliToolReference Include="BundlerMinifier.Core" Version="2.6.375" />

to an <ItemGroup>:

<Project ToolsVersion="15.0" Sdk="Microsoft.NET.Sdk.Web">

  ...

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="1.0.0-msbuild3-final" />
    <DotNetCliToolReference Include="BundlerMinifier.Core" Version="2.6.375" />
  </ItemGroup>
</Project>

Или создайте новый <ItemGroup> (их может быть много) для своих DotNetCliToolReference настроек.

Но посмотрите на https://www.nuget.org/packages/BundlerMinifier.Core для последнего номера версии

person Chris F Carroll    schedule 07.02.2017
comment
Это все еще не помогает мне решить ту же проблему, что и OP, я использую ядро ​​2.0. (Я также установил проект по умолчанию для правильного проекта в окне консоли PM) - 2.6.375 все еще является последней версией на момент написания. - person egmfrs; 26.04.2018
comment
попробовать dotnet restore после добавления BundleMinifier вручную? dotnet bundle работает из командной строки в каталоге проекта? - person Chris F Carroll; 28.04.2018
comment
Как это применимо в среде CI, вы не откроете VS там и не нажмете на сохранение или что-то в этом роде? - person David; 20.03.2019
comment
@ Дэвид, скажи еще? Этот ответ не требует открытия VS, это единовременное исправление для редактирования файла проекта и его сохранения. - person Chris F Carroll; 23.03.2019

Вероятно, вам также нужно добавить

"runtimes": {
"win10-x64": {}
},

в свой project.json, если вы хотите перейти на ядро ​​1.1 (также измените время выполнения на правильное время выполнения в файле global.json), я говорю это, потому что я получил ошибку пакета после обновления моих пакетов и приложения до 1.1 в VS2015.

person Johan Herstad    schedule 20.02.2017