Я создал проект C # (C# 7.0
& .net framework 4.7.2
), а также добавил несколько модульных тестов (NUnit 3.11.0
).
Этот код хранится в репозитории Gitlab, и я могу запустить тестыи строить на месте.Но теперь я хочу автоматизировать это с помощью Gitlab CI.В соответствии с этой публикацией stackoverflow и множеством статей в Интернете вы должны создать своего собственного бегуна на компьютере с Windows.
Но большинство из этих ответов уже довольно старые, и Gitlab CI теперь может работать с образами Docker.Но потом я прихожу к своей проблеме.Какое изображение я должен использовать для этого бегуна?Я пробовал microsoft / dotnet-framework и microsoft / dotnet , но они не работали.
microsoft/dotnet-framework
выдает сообщение об ошибке: No such image: microsoft/dotnet-framework
, а образы microsoft/dotnet
не содержат библиотеку .net 4.7.2
, поэтому ее нельзя использовать для сборки.
Gitlab CI + образ Docker + сборка C #?
По-прежнему невозможно создать Gitlab CI runner с образом Docker для сборки C # (консольное приложение)?Или я тут что-то не так делаю?
Мой текущий .gitlab-ci.yml
image: microsoft/dotnet-framework
stages:
- build
before_script:
- 'dotnet restore'
app-build:
stage: build
script:
- 'dotnet build'
only:
- master
Обновление
Сделайте благодаря @AndreasЗита, у меня теперь есть изображение (dsfnctnl/gitlab-dotnetcore-builder:0.15.0
).К сожалению это дает мне ту же ошибку, что и microsoft/dotnet
.Это, вероятно, ошибка в моем скрипте сборки (или я так надеюсь), но я не могу понять, что это такое.
Ошибка:
$ dotnet restore
Nothing to do. None of the projects specified contain packages to restore.
$ dotnet build
Microsoft (R) Build Engine version 15.9.20+g88f5fadfbe for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.
Nothing to do. None of the projects specified contain packages to restore.
/usr/share/dotnet/sdk/2.1.500/Microsoft.Common.CurrentVersion.targets(1179,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.7.2" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/builds/test/TestProject.csproj]
/usr/share/dotnet/sdk/2.1.500/Microsoft.Common.CurrentVersion.targets(1179,5): error MSB3644: The reference assemblies for framework ".NETFramework,Version=v4.7.2" were not found. To resolve this, install the SDK or Targeting Pack for this framework version or retarget your application to a version of the framework for which you have the SDK or Targeting Pack installed. Note that assemblies will be resolved from the Global Assembly Cache (GAC) and will be used in place of reference assemblies. Therefore your assembly may not be correctly targeted for the framework you intend. [/builds/test/TestProjectTests.csproj]
Build FAILED.