Nr server exe что это
Перейти к содержимому

Nr server exe что это

  • автор:

Как удалить r_server

R_server.exe — это исполняемый файл (программа) для Windows. Расширение имени файла .exe — это аббревиатура от англ. слова executable — исполнимый. Необходимо запускать исполняемые файлы от проверенных производителей программ, потому что исполняемые файлы могут потенциально изменить настройки компьютера или нанести вред вашему компьютеру. Бесплатный форум с информацией о файлах может помочь вам разобраться является ли r_server.exe вирусом, трояном, программой-шпионом, рекламой, которую вы можете удалить, или файл принадлежит системе Windows или приложению, которому можно доверять.

Вот так, вы сможете исправить ошибки, связанные с r_server.exe

  1. Используйте программу Настройщик Windows, чтобы найти причину проблем, в том числе и медленной работы компьютера.
  2. Обновите программу Remote control tool. Обновление можно найти на сайте производителя (ссылка приведена ниже).
  3. В следующих пунктах предоставлено описание работы r_server.exe.

Информация о файле r_server.exe

Описание: r_server.exe это часть пакета инструментов администрирования удаленного компьютера. Эти инструменты дают вам возможность удаленно управлять сервером. Если вы не собираетесь пользоваться данной программой, ее можно беспрепятственно удалить с вашего компьютера.

Подробный анализ: r_server.exe не является важным для Windows и часто вызывает проблемы. Файл r_server.exe находится в папке C:\Windows\System32 или иногда в подпапках «C:\Program Files» или в подпапках C:\Windows. Известны следующие размеры файла для Windows 10/11/7 708,608 байт (33% всех случаев), 724,992 байт, 241,664 байт или 184,320 байт.
Это не системный файл Windows. У файла нет информации о создателе этого файла. Процесс слушает или шлет данные на открытые порты в сети или по интернету. У процесса нет видимого окна. Поэтому технический рейтинг надежности 61% опасности.
Это позволяет удалить соответствующую программу (Пуск > Панель управления > Установка и удаление программ > Remote Administrator).

Важно: Некоторые вредоносные программы используют такое же имя файла r_server.exe, например RemoteAccess:Win32/RServer или RemoteAccess:Win32/GhostRadmin (определяется антивирусом Microsoft), и Win32:Radmin-BV [PUP] (определяется антивирусом Avast). Таким образом, вы должны проверить файл r_server.exe на вашем ПК, чтобы убедиться, что это угроза. Мы рекомендуем Security Task Manager для проверки безопасности вашего компьютера.

Комментарий пользователя

это простенькая игрушка с помощью которой можно залесть на другой комп. в реестре ее нет. но на всякий случай можно проверить. и располагаться она эта прога может не только в систем32 но и в програм вайлз в папке SBC. воот. и главное удалить все что связано с этой програмой. а узнать есть ли она на вашем компе можно посмотрев автозагрузки. ли
Андрей
Если вы добровольно устанавливали себе Radmin Server то все в порядке. Если же нет то на вашем компьютере стоит скрытый radmin сервер.
Евгений.

Итого: Средняя оценка пользователей сайта о файле r_server.exe: — на основе 5 голосов с 2 отзывами.
66 пользователей спрашивали про этот файл. Один пользователь оценил, как важный для Windows или установленной программы. 4 пользователей оценили, как опасный.

Лучшие практики для исправления проблем с r_server

Аккуратный и опрятный компьютер — это главное требование для избежания проблем с r_server. Для этого требуется регулярная проверка компьютера на вирусы, очистка жесткого диска, используя cleanmgr и sfc /scannow, удаление программ, которые больше не нужны, проверка программ, которые запускаются при старте Windows (используя msconfig) и активация Автоматическое обновление Windows. Всегда помните о создании периодических бэкапов, или в крайнем случае о создании точек восстановления.

Если у вас актуальные проблемы, попробуйте вспомнить, что вы делали в последнее время, или последнюю программу, которую вы устанавливали перед тем, как появилась впервые проблема. Используйте команду resmon, чтобы определить процесс, который вызывает проблемы. Даже если у вас серьезные проблемы с компьютером, прежде чем переустанавливать Windows, лучше попробуйте восстановить целостность установки ОС или для Windows 8 и более поздних версий Windows выполнить команду DISM.exe /Online /Cleanup-image /Restorehealth. Это позволит восстановить операционную систему без потери данных.

Следующие программы могут вам помочь для анализа процесса r_server.exe на вашем компьютере: Security Task Manager отображает все запущенные задания Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записей автозагрузки. Уникальная оценка рисков безопасности указывает на вероятность процесса быть потенциально опасным — шпионской программой, вирусом или трояном. Malwarebytes Anti-Malware определяет и удаляет бездействующие программы-шпионы, рекламное ПО, трояны, кейлоггеры, вредоносные программы и трекеры с вашего жесткого диска.

r_server сканер

Security Task Manager показывает все запущенные сервисы Windows, включая внедренные скрытые приложения (например, мониторинг клавиатуры или браузера, авто вход). Уникальный рейтинг надежности указывает на вероятность того, что процесс потенциально может быть вредоносной программой-шпионом, кейлоггером или трояном.

Бесплатный aнтивирус находит и удаляет неактивные программы-шпионы, рекламу, трояны, кейлоггеры, вредоносные и следящие программы с вашего жесткого диска. Идеальное дополнение к Security Task Manager.

Инструмент ремонта ПК бесплатное сканирование, очистка, восстановление и оптимизация вашей системы.

server.exe

Важно: Если server.exe вызывает ошибки на Вашем компьютере, следует немедленно проверить Windows.

Файл server.exe относится к программе неизвестно производителя неизвестно. Его задача: server.exe неизвестно
Обычно server.exe находится в каталоге %windir%\system32. Если этот файл находится в другой папке на Вашем компьютере, возможно, Вы выбрали такое расположение во время установки данного программного обеспечения. Однако это может указывать и на заражение вирусами.

server.exe Устранить ошибку

Если server.exe вызывает ошибки в, причиной могут быть поврежденные записи реестра.
В большинстве случаев достаточно проверить реестр Windows на наличие ошибок server.exe!

Если ошибки server.exe не удалось устранить, рекомендуется удалить программу с помощью «Панели управления», а затем повторно проверить реестр Windows.

server.exe замедляет мой компьютер!

Программы и файлы могут сильно ограничить производительность Windows. В некоторых случаях такой эффект вызывает и файл server.exe. В сомнительном случае следует удалить соответствующую программу.
Если server.exe в перечне автозагрузки Windows, это может привести к замедлению работы компьютера. Рекомендуется удалить эту программу.
Наш совет: AVG TuneUp™ отключает излишние автоматически загружаемые программы, а также процессы Windows, уменьшая тем самым нагрузку на компьютер.

Представляет ли server.exe опасность для моего компьютера?

server.exe считается Опасно. Немедленно проверьте компьютер с помощью актуальной антивирусной программы и удалите этот файл! Наш совет: AVG Anti-Virus Free.

Вся информация о server.exe:

У нас имеется следующая информация о server.exe.
Имя продукта: неизвестно
Имя процесса: неизвестно
Производитель: неизвестно
Интернет-сайт Производитель: неизвестно
Путь к файлу по умолчанию: %windir%\system32
Категория: ПРЕДУПРЕЖДЕНИЕ: опасная программа (троянская программа)!
Оценка: Опасно

Как удалить Server

Подлинный файл является одним из компонентов программного обеспечения неизвестно, разработанного неизвестно .

Server.exe — это исполняемый файл (программа) для Windows. Расширение имени файла .exe — это аббревиатура от англ. слова executable — исполнимый. Необходимо запускать исполняемые файлы от проверенных производителей программ, потому что исполняемые файлы могут потенциально изменить настройки компьютера или нанести вред вашему компьютеру. Бесплатный форум с информацией о файлах может помочь вам разобраться является ли Server.exe вирусом, трояном, программой-шпионом, рекламой, которую вы можете удалить, или файл принадлежит системе Windows или приложению, которому можно доверять.

Вот так, вы сможете исправить ошибки, связанные с Server.exe

  1. Используйте программу Настройщик Windows, чтобы найти причину проблем, в том числе и медленной работы компьютера.
  2. Обновите программу Virage. Обновление можно найти на сайте производителя (ссылка приведена ниже).
  3. В следующих пунктах предоставлено описание работы Server.exe.

Информация о файле Server.exe

от Microsoft (www.microsoft.com) или SlySoft (www.slysoft.com) или Lenovo (www.lenovo.com) или Sambar Technologies или BackWeb (www.backweb.com) или Malwarebytes (www.malwarebytes.org) или Music или Remote Mouse.

Описание: Server.exe не является необходимым для Windows. Server.exe находится в подпапках «C:\Users\USERNAME». Известны следующие размеры файла для Windows 10/11/7 24,064 байт (18% всех случаев), 418,816 байт и еще 19 варианта .
Это не системный процесс Windows. Нет описания файла. Процесс начинает работу при запуске Windows (Смотрите ключ реестра: Run , MACHINE\Run , User Shell Folders , DEFAULT\Run , MACHINE\RunOnce , Winlogon\Shell ). Приложение не видно пользователям. Server.exe способен записывать ввод данных, манипулировать другими программами и мониторить приложения. Поэтому технический рейтинг надежности 71% опасности.

  • Если Server.exe находится в подпапках «C:\Program Files», тогда рейтинг надежности 32% опасности. Размер файла 2,063,808 байт (9% всех случаев), 817,120 байт и еще 9 варианта . Это не системный процесс Windows. У процесса нет видимого окна. Server.exe способен мониторить приложения, записывать ввод данных и подключится к интернету.
    Издатель программного обеспечения Remotemouse предоставляет сведения об обновлении (www.remotemouse.net или www.gamejackal.com). Если возникают какие-либо проблемы с Server.exe, Вы также можете удалить всю программу Remote Mouse или Game Jackal используя Панель управления Windows.
  • Если Server.exe находится в подпапках C:\Windows, тогда рейтинг надежности 83% опасности. Размер файла 21,504 байт (33% всех случаев), 2,311,376 байт, 418,816 байт, 281,600 байт или 431,334 байт. Процесс начинает работать вместе с Windows (Смотрите ключ реестра: Run , MACHINE\Run , DEFAULT\Run , User Shell Folders , Winlogon\Shell , MACHINE\RunOnce ). Это не файл Windows. Нет описания файла. Server.exe способен мониторить приложения, записывать ввод данных и манипулировать другими программами.
  • Если Server.exe находится в папке Windows для хранения временных файлов , тогда рейтинг надежности 89% опасности. Размер файла 24,064 байт (50% всех случаев), 957,440 байт или 477,696 байт.
  • Если Server.exe находится в подпапках C:\Windows\System32, тогда рейтинг надежности 57% опасности. Размер файла 443,904 байт (25% всех случаев), 3,499,520 байт, 45,056 байт или 291,840 байт.
  • Если Server.exe находится в подпапках диска C:\, тогда рейтинг надежности 74% опасности. Размер файла 270,344 байт.

Важно: Некоторые вредоносные программы используют такое же имя файла Server.exe, например Trojan.Gen или W32.Spyrat (определяется антивирусом Symantec), и VirTool:Win32/VBInject или Worm:Win32/Rebhip.A (определяется антивирусом Microsoft). Таким образом, вы должны проверить файл Server.exe на вашем ПК, чтобы убедиться, что это угроза. Мы рекомендуем Security Task Manager для проверки безопасности вашего компьютера.

Комментарий пользователя

37 пользователей спрашивали про этот файл. 2 пользователей не поставили рейтинг («я не знаю»).

Лучшие практики для исправления проблем с Server

Аккуратный и опрятный компьютер — это главное требование для избежания проблем с Server. Для этого требуется регулярная проверка компьютера на вирусы, очистка жесткого диска, используя cleanmgr и sfc /scannow, удаление программ, которые больше не нужны, проверка программ, которые запускаются при старте Windows (используя msconfig) и активация Автоматическое обновление Windows. Всегда помните о создании периодических бэкапов, или в крайнем случае о создании точек восстановления.

Если у вас актуальные проблемы, попробуйте вспомнить, что вы делали в последнее время, или последнюю программу, которую вы устанавливали перед тем, как появилась впервые проблема. Используйте команду resmon, чтобы определить процесс, который вызывает проблемы. Даже если у вас серьезные проблемы с компьютером, прежде чем переустанавливать Windows, лучше попробуйте восстановить целостность установки ОС или для Windows 8 и более поздних версий Windows выполнить команду DISM.exe /Online /Cleanup-image /Restorehealth. Это позволит восстановить операционную систему без потери данных.

Следующие программы могут вам помочь для анализа процесса Server.exe на вашем компьютере: Security Task Manager отображает все запущенные задания Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записей автозагрузки. Уникальная оценка рисков безопасности указывает на вероятность процесса быть потенциально опасным — шпионской программой, вирусом или трояном. Malwarebytes Anti-Malware определяет и удаляет бездействующие программы-шпионы, рекламное ПО, трояны, кейлоггеры, вредоносные программы и трекеры с вашего жесткого диска.

Server сканер

Security Task Manager показывает все запущенные сервисы Windows, включая внедренные скрытые приложения (например, мониторинг клавиатуры или браузера, авто вход). Уникальный рейтинг надежности указывает на вероятность того, что процесс потенциально может быть вредоносной программой-шпионом, кейлоггером или трояном.

Бесплатный aнтивирус находит и удаляет неактивные программы-шпионы, рекламу, трояны, кейлоггеры, вредоносные и следящие программы с вашего жесткого диска. Идеальное дополнение к Security Task Manager.

Инструмент ремонта ПК бесплатное сканирование, очистка, восстановление и оптимизация вашей системы.

Пошаговая инструкция по настройке и использованию Gitlab CI + Visual Studio для сборки приложения .NET Framework

По натуре своей многие разработчики слишком ленивые не любят делать одно и то же действие много раз. Нам проще научить компьютер, чтобы он делал монотонные действия за нас.

Как только кто-либо из нашей команды вносит изменения в код (читай «мерджит feature-ветку в develop»), наш билд-сервер:

  • Собирает исходный код и установщик приложения
    • проставляет номер сборки, каждый раз увеличивая последнюю цифру. Например, текущая версия нашего ПО 3.3.0.202 – часть 3.3.0 когда-то ввёл разработчик (привет, SemVer), а «202» проставляется в процессе сборки.
    • В процессе анализирует качество кода (с использованием SonarQube) – и отправляет отчёт во внутренний SonarQube,

    Также, в зависимости от ветки, в которую были внесены изменения, могут быть выполнены:

    • отправка сборки (вместе с changelog-ом) в один или несколько телеграм-каналов (иногда удобнее брать сборки оттуда).
    • публикация файлов в систему автообновления ПО.

    Под катом о том, как мы научили Gitlab CI делать за нас бОльшую часть этой муторной работы.

    Оглавление

    1. Устанавливаем и регистрируем Gitlab Runner.
    2. Что нужно знать про .gitlab-ci.yml и переменные сборки.
    3. Активируем режим Developer PowerShell for VS.
    4. Используем CI для проставления версии во все сборки решения.
    5. Добавляем отправку данных в SonarQube.
    6. «Причёсываем» автотесты xUnit + добавляем вычисление покрытия тестами через OpenCover.
    7. Послесловие.

    Перед началом

    Чтобы быть уверенными, что написанное ниже работает, мы взяли на github небольшой проект, написанный на WPF и имеющий unit-тесты, и воспроизвели на нём описанные в статье шаги. Самые нетерпеливые могут сразу зайти в созданный на сайте gitlab.com репозиторий и посмотреть, как это выглядит.

    Устанавливаем и регистрируем Gitlab Runner

    Для того чтобы Gitlab CI мог что-либо собрать, сначала установите и настройте Gitlab Runner на машине, на которой будет осуществляться сборка. В случае проекта на .Net Framework это будет машина с ОС Windows.

    Чтобы настроить Gitlab Runner, выполните следующие шаги:

    1. Установите Git для Windows с сайта git.
    2. Установите Visual Studio с сайта Microsoft. Мы поставили себе Build Tools для Visual Studio 2019. Чтобы скачать именно его, разверните список Инструменты для Visual Studio 2019.
    3. Создайте папку C:\GitLab-Runner и сохраните в неё программу gitlab runner. Скачать её можно со страницы [документации Gitlab] (https://docs.gitlab.com/runner/install/windows.html) — ссылки скрыты прямо в тексте: «Download the binary for x86 or amd64».
    4. Запустите cmd или powershell в режиме администратора, перейдите в папку C:\GitLab-Runner и запустите скачанный файл с параметром install (Gitlab runner установится как системная служба).

     .\gitlab-runner.exe install
    • только в одном проекте — смотрите токен в меню проекта Settings >CI/CD в разделе Runners,
    • в группе проектов — смотрите токен в меню группы Settings >CI/CD в разделе Runners,
    • для всех проектов Gitlab-а — смотрите токен в секции администрирования, меню Overview >Runners.
     .\gitlab-runner.exe register

    Далее надо ввести ответы на вопросы мастера регистрации Runner-а:

    • coordinator URL — http или https адрес вашего сервера gitlab;
    • gitlab-ci token — введите токен, полученный на предыдущем шаге;
    • gitlab-ci description — описание Runner-а, которое будет показываться в интерфейсе Gitlab-а;
    • gitlab-ci tags — через запятую введите тэги для Runner-а. Если вы не знакомы с этим механизмом, оставьте поле пустым — отредактировать его можно позднее через интерфейс самого gitlab-а. Тэги можно использовать для того, чтобы определённые задачи выполнялись на определённых Runner-ах (например, чтобы настроить сборку ПО на Runner-е, развёрнутом на копьютере ОС Windows, а подготовку документации на Runner-е с ОС Linux);
    • enter the executor — ответьте shell . На этом шаге указывается оболочка, в которой будут выполняться команды; при указании значения shell под windows выбирается оболочка powershell, а последующие скрипты написаны именно для неё.

    Что нужно знать про .gitlab-ci.yml и переменные сборки

    В процессе своей работы Gitlab CI берёт инструкции о том, что делать в процессе сборки того или иного репозитория из файла .gitlab-ci.yml , который следует создать в корне репозитория.

    Вбив в поиске содержимое .gitlab-ci.yml для сборки приложения .NET Framework можно найти несколько шаблонов: 1, 2. Выглядят они примерно так:

    variables: # Максимальное количество параллельно собираемых проектов при сборке решения; зависит от количества ядер ПК, выбранного для сборки MSBUILD_CONCURRENCY: 4 # Тут куча путей до утилит, которые просто обязаны лежать там, где ожидается NUGET_PATH: 'C:\Tools\Nuget\nuget.exe' MSBUILD_PATH: 'C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\msbuild.exe' XUNIT_PATH: 'C:\Tools\xunit.runner.console.2.3.1\xunit.console.exe' TESTS_OUTPUT_FOLDER_PATH: '.\tests\CiCdExample.Tests\bin\Release\' # Тут указываются стадии сборки. Указывайте любые названия которые вам нравятся, но по умолчанию используют три стадии: build, test и deploy. # Стадии выполняются именно в такой последовательности. stages: - build - test # Далее описываются задачи (job-ы) build_job: stage: build # указание, что задача принадлежит этапу build # tags: windows # если тут указать тэг, задача будет выполняться только на Runner-е с указанным тэгом only: # для каких сущностей требуется выполнять задачу - branches script: # код шага - '& "$env:NUGET_PATH" restore' - '& "$env:MSBUILD_PATH" /p:Configuration=Release /m:$env:MSBUILD_CONCURRENCY /nr:false /clp:ErrorsOnly' # сборка; ключ clp:ErrorsOnlyоставляет только вывод ошибок; ключ nr:false завершает инстансы msbuild artifacts: # где по завершении задачи будут результаты, которые надо сохранить в gitlab (т.н. артефакты) и которые можно будет передать другим задачам по цепочке expire_in: 2 days # сколько хранить артефакты paths: # список путей, по которым находятся файлы для сохранения - '$env:TESTS_OUTPUT_FOLDER_PATH' test_job: stage: test only: - branches script: - '& "$env:XUNIT_PATH" "$env:TESTS_OUTPUT_FOLDER_PATH\CiCdExample.Tests.dll"' dependencies: # указание, что для запуска этой задачи требуется успешно завершенная задача build_job - build_job

    И последнее: если нам требуется передавать в скрипт значение параметра, который мы не хотим хранить в самом скрипте (например, пароль для подключения куда-либо), мы можем использовать для этого объявление параметров в gitlab. Для этого зайдите в проекте (или в группе проекта) в Settings > CI/CD и найдите раздел Variables. Прописав в нём параметр с именем (key) SAMPLE_PARAMETER, вы сможете получить его значение в в скрипте .gitlab-ci.yml через обращение $env:SAMPLE_PARAMETER.

    Также в этом разделе можно настроить передачу введенных параметров только при сборке защищённых веток (галочка Protected) и/или скрытие значения параметра из логов (галочка Masked).

    Подробнее о параметрах окружения сборки смотрите в документации к Gitlab CI.

    Активируем режим Developer PowerShell for VS

    Скрипт, приведённый выше, уже можно использовать для сборки и вызова тестов. Правда, присутствует НО: крайне неудобно прописывать абсолютные пути к разным установкам Visual Studio. К примеру, если на одной билд-машине стоит Visual Studio 2017 BuildTools, а на другой Visual Studio Professional 2019, то такой скрипт будет работать только для одной из двух машин.

    К счастью, с версии Visual Studio 2017 появился способ поиска всех инсталляций Visual Studio на компьютере. Для этого существует утилита vswhere, путь к которой не привязан ни к версии Visual Studio, ни к её редакции. А в Visual Studio 2019 (в версии 16.1 или более новой) есть библиотека, которая умеет «трансформировать» консоль Powershell в режим Developer Powershell, в котором уже прописаны пути к утилитам из поставки VS.

    Дописываем переменную к секции Variables:

    variables: VSWHERE_PATH: '%ProgramFiles(x86)%\Microsoft Visual Studio\Installer\vswhere.exe'

    Затем создаём новую секцию before_msbuild якорем enter_vsdevshell и следующим текстом:

    .before_msbuild: &enter_vsdevshell before_script: - '$vsWherePath = [System.Environment]::ExpandEnvironmentVariables($env:VSWHERE_PATH)' - '& $vsWherePath -latest -format value -property installationPath -products Microsoft.VisualStudio.Product.BuildTools | Tee-Object -Variable visualStudioPath' - 'Join-Path "$visualStudioPath" "\Common7\Tools\Microsoft.VisualStudio.DevShell.dll" | Import-Module' - 'Enter-VsDevShell -VsInstallPath:"$visualStudioPath" -SkipAutomaticLocation'

    И всюду, где нам надо использовать утилиты Visual Studio, добавляем этот якорь. После этого задача сборки начинает выглядеть намного более опрятно:

    build_job: 

    Подробно о том, что написано в .before_msbuild

    1. Утилита vswhere.exe умеет находить и выдавать список найденных инсталляций Visual Studio. Расположен она всегда по одному и тому же пути (этот путь записан в переменной VSWHERE_PATH). Поскольку в переменной фигурирует подстановка %programfiles% , её требуется раскрыть до пути к этой папке. Такое раскрытие проще всего сделать через статический метод .NET System.Environment.ExpandEnvironmentVariables.

    Результат: мы имеем путь к vswhere.

    1. Вызовом vswhere получим путь к папке с установленной Visual Studio.
      Все параметры утилиты можно посмотреть, если запустить vswhere.exe с параметром -help , в статье же только перечислю использованные:
      • -latest (искать самые свежие установки),
      • -property installationPath (вывести параметр пути установки),
      • -format value (при печати параметра вывести только значение параметра, без его имени),
      • -products (указание искомых редакций Visual Studio). Например, при запуске с параметром -products Microsoft.VisualStudio.Product.Community Microsoft.VisualStudio.Product.BuildTools утилита попробует найти Visual Studio редакций Community или BuildTools. Подробнее об идентификаторах продуктов смотрите по ссылке https://aka.ms/vs/workloads.

    Результат: в переменную $visualStudioPath записан путь к Visual Studio или пустая строка, если инсталляций Visual Studio не найдено (обработку этой ситуации мы ещё не добавили).

    1. Команда Import-Module загружает библиотеку Microsoft.VisualStudio.DevShell.dll, в которой прописаны командлеты трансформации консоли Powershell в Developer-консоль. А командлет Join-Path формирует путь к этой библиотеке относительно пути установки Visual Studio.
      На этом шаге нам прилетит ошибка, если библиотека Microsoft.VisualStudio.DevShell.dll отсутствует или путь к установке Visual Studio нужной редакции не был найден — Import-Module сообщит, что не может загрузить библиотеку.

    Результат: загружен модуль Powershell с командлетом трансформации.

    1. Запускаем «переделку» консоли в Developer Powershell. Чтобы корректно прописать пути к утилитам, командлету требуется путь к установленной Visual Studio (параметр -VsInstallPath ). А указание SkipAutomaticLocation требует от командлета не менять текущее расположение (без этого параметра путь меняется на \source\repos ).

    Результат: мы получили полноценную консоль Developer Powershell с прописанными путями к msbuild и многим другим утилитам, которые можно использовать при сборке.

    Используем CI для проставления версии во все сборки решения

    Раньше мы использовали t4 шаблоны для проставления версий: номер версии собиралась из содержимого файла в формате .. , далее к ней добавлялся номер сборки из Gitlab CI и он передавался в tt-шаблон, добавляющий в решение везде, где требуется, номер версии. Однако некоторое время назад был найден более оптимальный способ — использование команд git tag и git describe .

    Команда git tag устанавливает коммиту метку (тэг). Отметить таким образом можно любой коммит в любой момент времени. В отличие от веток, метка не меняется. То есть если после помеченного коммита вы добавите ещё один, метка останется на помеченном коммите. Если попробуете переписать отмеченный коммит командами git rebase или git commit --amend, метка также продолжит указывать на исходный коммит, а не на изменённый. Подробнее о метках смотрите в git book.

    Команда git describe , к сожалению, в русскоязычном gitbook не описана. Но работает она примерно так: ищет ближайшего помеченного родителя текущего коммита. Если такого коммита нет — команда возвращает ошибку fatal: No tags can describe '' . А вот если помеченный коммит нашёлся — тогда команда возвращает строку, в которой участвует найденная метка, а также количество коммитов между помеченным и текущим.

    На заметку: чтобы данная команда работала корректно во всех случаях, автор gitflow даже чуть-чуть поменял скрипты finish hotfix и finish release. Если кому интересно посмотреть обсуждение с автором gitflow, а также увидеть что изменилось (картинка с актуальной схемой в последнем сообщении в треде).

    Кстати, по этой же причине если вы используете gitflow, после вливания feature-ветки в develop требуется удалить влитую локальную ветку, после чего пересоздать её от свежего develop:

    Не забывайте пересоздавать ветки от develop

    (обратите внимание на историю git в левой части картинки: из-за отсутствия пути из текущего коммита до коммита с меткой 1.0.5, команда git describe выдаст неверный ответ)

    Но вернёмся к автопроставлению версии. В нашем репозитории царит gitflow (точнее его rebase-версия), метки расставляются в ветке master и мы не забываем пересоздавать feature-ветки от develop, а также merge-ить master в develop после каждого релиза или хотфикса.

    Тогда получить версию для любого коммита и сразу передать её в msbuild можно добавив всего пару строк к задаче сборки:

    build_job: [0-9]+)\.(?[0-9]*)\.(?[0-9]*)\-(?[0-9]+)\-g[0-9a-f]+" | Select-Object -First 1' - '[int]$major, [int]$minor, [int]$patch, [int]$commit = $versionGroup.Matches[0].Groups["major", "minor", "patch", "commit"].Value' - '[string]$version = "$major.$minor.$patch.$commit"' - 'msbuild /p:Configuration=Release /p:AssemblyVersionNumber=$version /m:$env:MSBUILD_CONCURRENCY /nr:false /clp:ErrorsOnly' artifacts: expire_in: 2 days paths: - '$env:TESTS_OUTPUT_FOLDER_PATH'

    Как это работает:

    1. Мы проставляем метки в формате .. .
    2. Тогда git describe --long возвращает нам строку, описывающую версию в формате ..--g .
    3. Парсим полученную строку через регулярные выражения, выделяя нужные нам части — и записывем части в $versionGroup .
    4. Преобразовываем четыре найденные подстроки в 4 числа и пишем их в переменные $major , $minor , $patch , $commit , после чего собираем из них строку уже в нужном нам формате.
    5. Передаём указанную строку в msbuild чтобы он сам проставил версию файлов при сборке.

    Обратите внимание: если вы, согласно gitflow, будете отмечать (тэгировать) ветку master после вливания в неё release или hofix, будьте внимательны: до простановки метки автосборка будет вестись относительно последней существующей ветки. Например, сейчас опубликована версия 3.4, а вы создаёте release-ветку для выпуска версии 3.5. Так вот: всё время существования этой ветки, а также после её вливания в master, но до простановки тэга, автосборка будет проставлять версию 3.4.

    Добавляем отправку данных в SonarQube

    SonarQube — это мощный инструмент контроля качества кода.

    SonarQube имеет бесплатную Community-версию, которая способна проводить полный анализ. Правда, только одной ветки. Чтобы настроить её на контроль качества ветки разработки (develop), требуется выполнить следующие шаги (разумеется, помимо установки и развёртывания сервера SonarQube):

    1. Создайте в SonarQube новый проект, после чего запомните его ключ.
    2. Скачайте SonarScanner for MSBuild (с сайта sonarqube.org)[https://docs.sonarqube.org/latest/analysis/scan/sonarscanner-for-msbuild/] — мы используем версию .NET Framework 4.6+.
    3. Распакуйте содержимое архива в папку. Например, в C:\Tools\SonarScanner .
      На заметку: эту утилиту также можно скачать на сборочную машину через NuGet, но тогда надо будет чуть по-иному указывать её путь.
    4. Зайдите в параметры CI/CD в свойствах проекта Gitlab и добавьте следующие параметры:
    5. SONARQUBE_PROJECT_KEY — ключ проекта,
    6. SONARQUBE_AUTH_TOKEN — токен авторизации.

     variables: SONARSCANNER_MSBUILD_PATH: 'C:\Tools\SonarScanner\SonarScanner.MSBuild.exe' SONARQUBE_HOST_URL: 'url вашего сервера SonarQube'
     test_job: stage: test only: - /^develop$/ [0-9]+)\.(?[0-9]*)\.(?[0-9]*)\-(?[0-9]+)\-g[0-9a-f]+" | Select-Object -First 1' - '[int]$major, [int]$minor, [int]$patch, [int]$commit = $versionGroup.Matches[0].Groups["major", "minor", "patch", "commit"].Value' - '[string]$version = "$major.$minor.$patch.$commit"' - '& "$env:SONARSCANNER_MSBUILD_PATH" begin /key:$env:SONARQUBE_PROJECT_KEY /d:sonar.host.url=$env:SONARQUBE_HOST_URL /d:sonar.login=$env:SONARQUBE_AUTH_TOKEN /d:sonar.gitlab.project_id=$CI_PROJECT_PATH /d:sonar.gitlab.ref_name=develop /v:$version /d:sonar.dotnet.excludeGeneratedCode=true' - 'msbuild /t:rebuild /m:$env:MSBUILD_CONCURRENCY /nr:false /clp:ErrorsOnly' - '& "$env:SONARSCANNER_MSBUILD_PATH" end /d:sonar.login=$env:SONARQUBE_AUTH_TOKEN' - '& "$env:XUNIT_PATH" "$env:TESTS_OUTPUT_FOLDER_PATH\CiCdExample.Tests.dll"'

    Теперь при каждой сборке ветки develop в SonarQube будет отправляться подробный анализ нашего кода.

    На заметку: вообще команда msbuild /t:rebuild полностью пересобирает решение. Вероятно, в большинстве проектов анализ можно было бы встроить прямо в стадию сборки. Но сейчас у нас анализ в отдельной задаче.

    Пара слов об использованных параметрах:

    • key — ключ проекта на сервере SonarQube,
    • v — собираемая версия. Отлично комбинируется с предыдущим шагом автопроставления версии,
    • sonar.gitlab.project_id — ID проекта на сервере Gitlab,
    • sonar.gitlab.ref_name — название ветки, которое получает сервер SonarQube при передаче результатов анализа,
    • sonar.dotnet.excludeGeneratedCode — не включать в анализ объекты, отмеченные атрибутом System.CodeDom.Compiler.GeneratedCode (чтобы не оценивать качество автосгенерированного кода).

    «Причёсываем» автотесты xUnit + добавляем вычисление покрытия тестами через OpenCover

    Со сборкой более-менее разобрались — теперь приступаем к тестам. Доработаем код прогона тестов, чтобы он:

    • сам находил библиотеки с тестами,
    • прогонял их пачкой через xUnit,
    • вычислял тестовое покрытие через OpenConver,
    • отправлял результаты покрытия тестами в SonarQube.

    На заметку: обычно в паре с OpenCover используют ReportGenerator, но при наличии SonarQube мы с тем же успехом можем смотреть результаты через его интерфейс.

    Для настройки выполним следующие шаги:

    1. Скачайте OpenCover в виде zip-файла с сайта github.
    2. Распакуйте содержимое архива в папку. Например, в C:\Tools\OpenCover .
      На заметку: эту утилиту также можно скачать на сборочную машину через NuGet, но тогда надо будет чуть по-иному указывать её путь.
    3. Допишите переменные к секции Variables:

     variables: OBJECTS_TO_TEST_REGEX: '^Rt[^\n]*\.(dll|exe)$' OPENCOVER_PATH: 'C:\Tools\opencover-4.7.922\xunit.console.exe' OPENCOVER_FILTER: '+[Rt.*]* -[*UnitTests]* -[*AssemblyInfo]*' OPENCOVER_REPORT_FILE_PATH: '.\cover.xml'
     test_job: stage: test only: - /^develop$/ [0-9]+)\.(?[0-9]*)\.(?[0-9]*)\-(?[0-9]+)\-g[0-9a-f]+" | Select-Object -First 1' - '[int]$major, [int]$minor, [int]$patch, [int]$commit = $versionGroup.Matches[0].Groups["major", "minor", "patch", "commit"].Value' - '[string]$version = "$major.$minor.$patch.$commit"' - '& "$env:SONARSCANNER_MSBUILD_PATH" begin /key:$env:SONARQUBE_PROJECT_KEY /d:sonar.host.url=$env:SONARQUBE_HOST_URL /d:sonar.login=$env:SONARQUBE_AUTH_TOKEN /d:sonar.gitlab.project_id=$CI_PROJECT_PATH /d:sonar.gitlab.ref_name=develop /v:$version /d:sonar.cs.opencover.reportsPaths="$env:OPENCOVER_REPORT_FILE_PATH" /d:sonar.dotnet.excludeGeneratedCode=true' - 'msbuild /t:rebuild /m:$env:MSBUILD_CONCURRENCY /nr:false /clp:ErrorsOnly' - '$dllsToRunUnitTesting = @(Get-ChildItem "$env:TESTS_OUTPUT_FOLDER_PATH" -Recurse) | Where-Object | ForEach-Object < """""$_""""" >| Join-String -Separator " "' - '& "$env:OPENCOVER_PATH" -register -target:"$env:XUNIT_PATH" -targetargs:"$dllsToRunUnitTesting -noshadow" -filter:"$env:OPENCOVER_FILTER" -output:"$env:OPENCOVER_REPORT_FILE_PATH" | Write-Host' - 'if ($?) !>"' - 'Write-Host "Total Branch Coverage [![$branchCoverage]!]"' - '> else ' - '& "$env:SONARSCANNER_MSBUILD_PATH" end /d:sonar.login=$env:SONARQUBE_AUTH_TOKEN'
    • если хочется видеть значение покрытия тестов по строкам кода (его ешё называют Sequence Coverage или Statement Coverage), указываем выражение ]+)>!> ,
    • если хочется видеть значение покрытия тестов по веткам условных операторов (его называют Decision Coverage или Branch Coverage), указываем выражение \[!\[([^>]+)\]!\] .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *