Развертывание Dotnet Core 1.1 Azure: не найден исполняемый файл, соответствующий команде "dotnet-publish-iis"
У меня проблема с развертыванием через git в Azure. Мое приложение называется Blogg
продолжает зависать, когда PostCompile
Команда запускается после публикации приложения на сервере. Эта команда:
<Exec Command="dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" />
У меня сложилось впечатление, что ссылка на пакет для этой команды пришла Microsoft.AspNetCore.Server.IISIntegration
но даже после добавления версий 1.1.0-preview4-final
а также 1.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"`
1 ответ
Когда используешь csproj
файлы для веб-приложений ASP.NET Core, вы можете безопасно удалить эту строку:
<Exec Command="dotnet publish-iis …" />
Для проектов на основе project.json эта команда выполняла действия, которые теперь выполняются по умолчанию, если ваш проект использует веб-SDK:
<Project Sdk="Microsoft.NET.Sdk.Web">
Похоже, что миграция правильно удалила ссылку на инструменты dotnet-publish-iis
инструмент, но не удалил соответствующий вызов. Вы можете подать вопрос на dotnet migrate
GitHub репозиторий инструмента с вашим исходным файлом project.json.