【问题标题】:No executable found matching command "dotnet-bundle" during WebDeploy for ASP.NET Core在 WebDeploy for ASP.NET Core 期间未找到匹配命令“dotnet-bundle”的可执行文件
【发布时间】:2017-02-25 08:19:14
【问题描述】:

我是 ASP.NET 的新手,我正在尝试发布一个 Web 应用程序。我已尝试使用 2 个不同的主机进行 Web 部署,但不断收到错误消息:-

找不到匹配命令“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***"
}

【问题讨论】:

    标签: asp.net-core asp.net-core-mvc webdeploy


    【解决方案1】:

    自2016年底(RC3及更高版本,VS2017及更高版本)移至.csproj文件格式,添加

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

    &lt;ItemGroup&gt;

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

    或者为您的DotNetCliToolReference 设置创建一个新的&lt;ItemGroup&gt;(可以有很多)。

    但请查看https://www.nuget.org/packages/BundlerMinifier.Core 获取最新版本号

    【讨论】:

    • 这仍然没有让我解决与 OP 相同的问题,我使用的是核心 2.0。 (我也在 PM 控制台窗口中将默认项目设置为正确的项目) - 2.6.375 在撰写本文时仍然是最新版本。
    • 手动添加BundleMinifier后试试dotnet restoredotnet bundle 是否在项目目录中的命令行中工作?
    • 这在 CI 环境中如何应用,你不会在那里打开 VS 并单击保存或类似的东西?
    • @David - 说更多?这个答案不需要打开VS,编辑项目文件并保存是一次性修复。
    【解决方案2】:

    你可能还需要添加

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

    如果你想升级到核心 1.1(也更改为正确的 global.json 文件中的运行时)到你的 project.json 我这样说是因为我在 VS2015 中将我的包和应用程序升级到 1.1 后出现捆绑错误。

    【讨论】:

      【解决方案3】:

      Project.jsontools 部分添加这个-

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

      在保存 Project.json 时,VS2015 会自动恢复包。

      如果它不起作用,请右键单击项目并单击“恢复包”选项。

      如果这不起作用,请尝试使用dotnet restore CLI 命令进行恢复。

      看看这是否有帮助。

      【讨论】:

      • 这似乎已经解决了这个问题。非常感谢@Sanket
      • 它对我也有帮助,但在No executable found matching command "dotnet-bundle". 消失后,我做了额外的步骤来修复Version for package 'BundlerMinifier.Core' could not be resolved. 错误消息。所以,我右键单击一个项目并点击Restore Packages 命令。
      • @OlegBurov 感谢您分享您的解决方案。我遇到了和你一样的问题,在应用你的额外步骤后,它解决了我的问题。希望您的评论也能对其他人有所帮助。
      • 我们知道为什么新的 ASP.Net 核心应用程序默认不包含 BundlerMinifier.Core 吗? (我想理论上我将我的应用程序创建为 ASP.Net Core 1.0 应用程序,并且已经升级到 1.1。这可能是问题的一部分吗?)
      • No @JoelB... 我不确定为什么默认情况下不包含 BundlerMinifier。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-10
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      相关资源
      最近更新 更多