【问题标题】:Dotnet Core 1.1 Azure Deployment: No executable found matching command "dotnet-publish-iis"Dotnet Core 1.1 Azure 部署:找不到匹配命令“dotnet-publish-iis”的可执行文件
【发布时间】:2017-06-06 05:02:18
【问题描述】:

我在通过 git 部署到 Azure 时遇到问题。我的应用程序Blogg 在应用程序发布到服务器后运行PostCompile 命令时一直挂断。该命令是:

<Exec Command="dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" />

我的印象是此命令的包引用来自Microsoft.AspNetCore.Server.IISIntegration,但即使添加了1.1.0-preview4-final1.1.2(最新)版本,我仍然遇到问题。

如果有帮助,以下是我的 .csproj 文件中的内容:

`<Project ToolsVersion="15.0" Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp1.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore" Version="1.0.4" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="1.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc" Version="1.0.3" />
    <PackageReference Include="Microsoft.AspNetCore.Server.IISIntegration" Version="1.1.0-preview4-final" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.0.2" />
    <PackageReference Include="Microsoft.Extensions.Logging.Console" Version="1.1.2" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="1.0.2" />
    <PackageReference Include="Microsoft.VisualStudio.Web.BrowserLink" Version="1.0.1" />
  </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.DotNet.Watcher.Tools" Version="1.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Session" Version="1.1.2" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.sqlserver.Design" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.0.0-msbuild2-final" />
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0-msbuild2-final" />
  </ItemGroup>
  <ItemGroup>
    <None Include="wwwroot/*" CopyToPublishDirectory="Always" />
    <None Include="Views/*" CopyToPublishDirectory="Always" />
    <None Include="web.config" CopyToPublishDirectory="Always" />
  </ItemGroup>
  <Target Name="MyPostCompileTarget" AfterTargets="Publish">
    <Exec Command="dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" />
  </Target>
</Project>`

我从 Azure 日志中得到的错误:

`Command: "D:\home\site\deployments\tools\deploy.cmd"
Handling ASP.NET Core Web Application deployment.
  Restoring packages for D:\home\site\repository\Blogg.csproj...
D:\Program Files (x86)\dotnet\sdk\1.0.0-rc4-004771\NuGet.targets(97,5): warning : Dependency specified was Microsoft.AspNetCore.Server.IISIntegration (>= 1.1.0-preview4-final) but ended up with Microsoft.AspNetCore.Server.IISIntegration 1.1.0. [D:\home\site\repository\Blogg.csproj]
  Installing Microsoft.AspNetCore.Http.Features 1.1.0.
  Installing Microsoft.AspNetCore.Hosting.Server.Abstractions 1.1.0.
  Installing Microsoft.Extensions.Configuration.Abstractions 1.1.0.
  Installing Microsoft.AspNetCore.Http.Abstractions 1.1.0.
  Installing Microsoft.AspNetCore.WebUtilities 1.1.0.
  Installing Microsoft.Extensions.ObjectPool 1.1.0.
  Installing Microsoft.Net.Http.Headers 1.1.0.
  Installing Microsoft.AspNetCore.Http.Extensions 1.1.0.
  Installing Microsoft.AspNetCore.Hosting.Abstractions 1.1.0.
  Installing Microsoft.AspNetCore.Http 1.1.0.
  Installing Microsoft.Extensions.Logging.Abstractions 1.1.0.
  Installing Microsoft.Extensions.Options 1.1.0.
  Installing Microsoft.AspNetCore.HttpOverrides 1.1.0.
  Installing Microsoft.AspNetCore.Server.IISIntegration 1.1.0.
  Writing lock file to disk. Path: D:\home\site\repository\obj\project.assets.json
  Restore completed in 18.69 sec for D:\home\site\repository\Blogg.csproj.
  Restoring packages for D:\home\site\repository\Blogg.csproj...
  Restore completed in 14.38 sec for D:\home\site\repository\Blogg.csproj.
  Restoring packages for D:\home\site\repository\Blogg.csproj...
  Restore completed in 17.49 sec for D:\home\site\repository\Blogg.csproj.

  NuGet Config files used:
      D:\local\AppData\NuGet\NuGet.Config

  Feeds used:
      https://api.nuget.org/v3/index.json

  Installed:
      14 package(s) to D:\home\site\repository\Blogg.csproj
Microsoft (R) Build Engine version 15.1.545.13942
Copyright (C) Microsoft Corporation. All rights reserved.

  Blogg -> D:\home\site\repository\bin\Release\netcoreapp1.0\Blogg.dll
  No executable found matching command "dotnet-publish-iis"
D:\home\site\repository\Blogg.csproj(30,5): error MSB3073: The command "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" exited with code 1.
Failed exitCode=1, command=dotnet publish "D:\home\site\repository\Blogg.csproj" --output "D:\local\Temp\8d4ac97ca692979" --configuration Release
An error has occurred during web site deployment.
\r\nD:\Program Files (x86)\SiteExtensions\Kudu\62.60524.2862\bin\Scripts\starter.cmd "D:\home\site\deployments\tools\deploy.cmd"`

【问题讨论】:

    标签: azure iis deployment .net-core microsoft-web-deploy


    【解决方案1】:

    在为 ASP.NET Core Web 应用程序使用 csproj 文件时,您可以安全地删除此行:

    <Exec Command="dotnet publish-iis …" />
    

    对于基于 project.json 的项目,如果您的项目使用 web sdk,则此命令执行现在默认执行的操作:

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

    迁移似乎正确删除了对 dotnet-publish-iis 工具的工具引用,但没有删除相应的调用。您可以使用原始 project.json 文件在 dotnet migrate tool's GitHub repository 提出问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-13
      • 1970-01-01
      • 2019-05-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多