---
metadata:
  - name: generator
    content: Diplodoc Platform v5.50.6
alternate:
  - https://sourcecraft.dev/portal/docs/en/sourcecraft/operations/configure-nuget.md
  - https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/configure-nuget.md
title: Настроить NuGet для работы с реестром SourceCraft
description: Инструкция по настройке NuGet для работы с реестром пакетов SourceCraft.
---
> **Documentation Index:** Fetch the complete configuration index at https://sourcecraft.dev/portal/docs/ru/llms.txt


# Настроить NuGet для работы с реестром SourceCraft

1. [Создайте](https://sourcecraft.dev/portal/docs/ru/sourcecraft/security/pat.md#create) персональный токен (PAT).
1. Создайте переменные окружения `REGISTRY_USERNAME` и `REGISTRY_PASSWORD`, содержащие данные для аутентификации по персональному токену (PAT):

    ```bash
    export REGISTRY_USERNAME="iam"
    export REGISTRY_PASSWORD="<персональный_токен_PAT>"
    ```

1. Выполните настройки файла конфигурации [NuGet](https://ru.wikipedia.org/wiki/NuGet):

    {% list tabs group=instructions %}

    - dotnet CLI {#dotnetcli}

      Чтобы внести изменения в файл конфигурации NuGet с помощью [dotnet CLI](https://learn.microsoft.com/ru-ru/nuget/reference/dotnet-commands), выполните команду:

      ```bash
      dotnet nuget add source "https://pkg.sourcecraft.tech/nuget/v3/<слаг_организации>/<идентификатор_реестра>/index.json" \
        -n "sourcecraft-registry" \
        -u %REGISTRY_USERNAME% \
        -p %REGISTRY_PASSWORD% \
        --store-password-in-clear-text --protocol-version 3
      ```

      <!-- source: ru/_includes/sourcecraft/get-slug-registry-id-notice.md -->
      {% note tip %}

      Слаг организации и идентификатор реестра вы можете узнать на странице реестра в интерфейсе SourceCraft.

      {% endnote %}
      <!-- endsource: ru/_includes/sourcecraft/get-slug-registry-id-notice.md -->

    - NuGet CLI {#nugetcli}

      Чтобы внести изменения в файл конфигурации NuGet с помощью [NuGet CLI](https://learn.microsoft.com/ru-ru/nuget/reference/nuget-exe-cli-reference), запустите файл `nuget.exe` со следующими параметрами:

      ```
      nuget sources add -Name "sourcecraft-registry" \
        -Source "https://pkg.sourcecraft.tech/nuget/v3/<слаг_организации>/<идентификатор_реестра>/index.json" \
        -Username "%REGISTRY_USERNAME%" \
        -Password "%REGISTRY_PASSWORD%" \
        -StorePasswordInClearText -ProtocolVersion 3
      ```

      <!-- source: ru/_includes/sourcecraft/get-slug-registry-id-notice.md -->
      {% note tip %}

      Слаг организации и идентификатор реестра вы можете узнать на странице реестра в интерфейсе SourceCraft.

      {% endnote %}
      <!-- endsource: ru/_includes/sourcecraft/get-slug-registry-id-notice.md -->

    - Вручную {#manual}

      1. Откройте [файл конфигурации](https://learn.microsoft.com/en-us/nuget/consume-packages/configuring-nuget-behavior#config-file-locations-and-uses) NuGet.

          {% note info %}

          При использовании dotnet CLI файл конфигурации расположен по пути `~/.nuget/NuGet/NuGet.Config`, при использовании NuGet CLI — по пути `~/.config/NuGet/NuGet.Config`.

          {% endnote %}
      1. Замените конфигурацию файла на следующую:

          ```xml
          <?xml version="1.0" encoding="utf-8"?>
          <configuration>
            <packageSources>
              <add key="sourcecraft-registry" value="https://pkg.sourcecraft.tech/nuget/v3/<слаг_организации>/<идентификатор_реестра>/index.json" protocolVersion="3" />
            </packageSources>

            <packageSourceCredentials>
              <sourcecraft-registry>
                <add key="Username" value="%REGISTRY_USERNAME%" />
                <add key="ClearTextPassword" value="%REGISTRY_PASSWORD%" />
              </sourcecraft-registry>
            </packageSourceCredentials>
          </configuration>
          ```

          <!-- source: ru/_includes/sourcecraft/get-slug-registry-id-notice.md -->
          {% note tip %}

          Слаг организации и идентификатор реестра вы можете узнать на странице реестра в интерфейсе SourceCraft.

          {% endnote %}
          <!-- endsource: ru/_includes/sourcecraft/get-slug-registry-id-notice.md -->

    {% endlist %}

1. Чтобы отправить [подготовленный](https://learn.microsoft.com/en-us/nuget/create-packages/overview-and-workflow) пакет NuGet в реестр SourceCraft, выполните команду:

    {% list tabs group=instructions %}

    - dotnet CLI {#dotnetcli}

      ```bash
      dotnet nuget push <путь_к_пакету> \
        -s "sourcecraft-registry"
      ```

    - NuGet CLI {#nugetcli}

      ```bash
      nuget push <путь_к_пакету> \
        -Source "sourcecraft-registry"
      ```

    {% endlist %}

    Результат:

    ```text
    Pushing Nuget.Quickstart.1.0.0.nupkg to 'https://pkg.sourcecraft.tech/nuget/v3/myorg_cn10ckmq8hsk********/packages/'...
      PUT https://pkg.sourcecraft.tech/nuget/v3/myorg_cn10ckmq8hsk********/packages/
      Created https://pkg.sourcecraft.tech/nuget/v3/myorg_cn10ckmq8hsk********/packages/ 1534ms
    Your package was pushed.
    ```
1. Чтобы установить пакет NuGet из реестра SourceCraft, выполните команду:

    {% list tabs group=instructions %}

    - dotnet CLI {#dotnetcli}

      ```bash
      dotnet add package <имя_пакета> \
        --source "sourcecraft-registry"
      ```

    - NuGet CLI {#nugetcli}

      ```bash
      nuget install <имя_пакета> \
        -Source "sourcecraft-registry"
      ```

    {% endlist %}

#### Полезные ссылки {#see-also}

* [Взаимосвязь ресурсов SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md)
* [Создать реестр (registry) в SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/packages-management.md)
* [Подключить реестр (registry) к репозиторию SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/connect-registry.md)
* [Настроить Maven для работы с реестром SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/configure-maven.md)
* [Настроить npm для работы с реестром SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/configure-npm.md)
* [Настроить PyPI для работы с реестром SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/configure-pypi.md)
* [Настроить Docker для работы с реестром SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/configure-docker.md)
