Gitlab CI с C # build - PullRequest
       7

Gitlab CI с C # build

0 голосов
/ 22 ноября 2018

Я создал проект 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.

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Я думаю, что если вы используете .net framework 4.7.2 и хотите безболезненно собрать, вам нужна Windows с Visual Studio MSBuild.Может быть, это поможет: https://medium.com/@n3d4ti/build-net-project-with-gitlab-ci-44e6c3562a8

0 голосов
/ 16 января 2019

Моно образ работает для меня, чтобы создать приложение C # в GitLab.

    image: mono:4.4.0.182

     stages:
      - build
    app-build:
      stage: build
      script:
        - MONO_IOMAP=case xbuild/t:Build/p:Configuration="Debug"/p:Platform="x86"
          myApp.sln
    only:
       - master

Платформа может быть изменена в соответствии с конфигурацией сборки, такой как AnyCPU.

...