Ошибка восстановления приложения.net core 2.0, обновленного до 2.1
Попытка VSTS создать наше основное ядро .NET, которое мы обновили с 2.0 до 2.1.
Когда я строю локально с SDK версии 2.1.301, все в порядке. Но сборка VSTS терпит неудачу.
Итак, у меня есть global.json в корне проекта, который не удалось добавить, но это не решило проблему:
{
"sdk": {
"version": "2.1.301"
}
}
Ошибка, которую мы получаем:
2018-06-29T10: 40: 44.2112663Z 2018-06-29T10: 40: 44.2112824Z
"D: \ a \ 1 \ s \ FooApp.Tests \ FooApp.Tests.csproj" (цель восстановления) (1) -> 2018-06-29T10:40:44.2113005Z (цель восстановления) -> 2018-06-29T10:40:44.2113230Z D:\a\1\s\FooApp\FooApp.csproj: ошибка NU1107: обнаружен конфликт версий для Microsoft.AspNetCore.Razor.Language. Ссылка на пакет прямо из проекта, чтобы решить эту проблему. [D:\a\1\s\FooApp.Tests\FooApp.Tests.csproj] 2018-06-29T10:40:44.2113815Z D:\a\1\s\FooApp\FooApp.csproj: ошибка NU1107: FooApp -> Microsoft..1 -> Microsoft.VisualStudio.Web.CodeGeneration.Core 2.1.1 -> Microsoft.VisualStudio.Web.CodeGeneration.Templating 2.1.1 -> Microsoft.AspNetCore.Razor.Language (>= 2.1.1) [D:\a\1\s\FooApp.Tests\FooApp.Tests.csproj] 2018-06-29T10:40:44.2114327Z D:\a\1\s\FooApp\FooApp.csproj: ошибка NU1107: FooApp -> Microsoft.AspNetCore. Приложение 2.1.0 -> Microsoft.AspNetCore.Razor.Language (= 2.1.0). [D:\a\1\s\FooApp.Tests\FooApp.Tests.csproj] 2018-06-29T10:40:44.2114518Z
Вот MyOwnApp.csproj
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
<DockerComposeProjectPath>..\docker-compose.dcproj</DockerComposeProjectPath>
</PropertyGroup>
<ItemGroup>
<Compile Remove="Models\**" />
<Content Remove="Models\**" />
<EmbeddedResource Remove="Models\**" />
<None Remove="Models\**" />
</ItemGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="IdentityServer4.AccessTokenValidation" Version="2.6.0" />
<PackageReference Include="Microsoft.AspNetCore.App" />
<PackageReference Include="Microsoft.Azure.ServiceBus" Version="3.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.1" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.1" />
<PackageReference Include="Serilog.AspNetCore" Version="2.1.1" />
<PackageReference Include="Serilog.Settings.Configuration" Version="2.6.1" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.File" Version="4.0.0" />
<PackageReference Include="Serilog.Sinks.MSSqlServerCore" Version="1.1.0" />
<PackageReference Include="Serilog.Sinks.RollingFile" Version="3.3.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\MyOwnApp\MyOwnApp.csproj" />
</ItemGroup>
</Project>
1 ответ
Скорее всего SDK 2.1.301 SDK не установлен на сервере TFS. 2.1.301 соответствует.NET Core 2.1.1
Пакет содержит ссылку на:
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.1.1" />
Как говорится в сообщении об ошибке, этот пакет требует версии 2.1.1 Microsoft.AspNetCore.Razor.Language
, Microsoft.AspNetCore.App
Пакет найден на сервере сборки, хотя это 2.1.0.
Решение состоит в том, чтобы установить 2.1.301 SDK на сервер
ОБНОВИТЬ
Если VSTS не имеет последней версии SDK, его можно установить, выполнив следующие шаги:
- Добавить
.NET Core Tool Installer
Задача в качестве первой задачи в процессе сборки и укажите версию SDK. В этом случае это2.1.301
- Добавить
Nuget Tool Installer
сразу после этого.
Эти шаги должны установить правильные версии SDK и NuGet