Недавно был построен новый сервер TFS 2018 (обновление 3) и настроено управление пакетами для использования вышестоящих ресурсов, то есть NuGet.org. Я должен был настроить сайт IIS для работы через прокси-сервис. После того как все было настроено, я установил Visual Studio для использования TFS в качестве единственного источника пакета и очистил локальный кеш. После того, как я восстановил пакеты NuGet, я убедился, что TFS фактически кеширует их.
Затем я приступил к тестированию сборок сервера. Очистил все пакеты NuGet из TFS и локального кэша и попытался собрать. Сборка не удалась при попытке получить пакеты NuGet. Как вы можете видеть ниже, пакеты NuGet не были найдены ни в локальном кэше, ни в TFS, поэтому была предпринята попытка загрузить пакеты из NuGet, которые не удалось отправить сообщение об отказе в соединении.
Сбой команды nuget с кодом выхода (1) и ошибкой (ошибки в
проекты packages.config Невозможно найти версию пакета 1.3.2.
'MSTest.TestFramework. C: \ Users \ TfsBuild.nuget \ packages: пакет
'MSTest.TestFramework.1.3.2' не найден в источнике
'C: \ Users \ TfsBuild.nuget \ пакеты \'.
https://tfs2.somedomain.com/testco/_packaging/be64f838-0b3e-42b4-92cc-bce7c435274a/nuget/v3/index.json:
Пакет 'MSTest.TestFramework.1.3.2' не найден в источнике
«https://tfs2.somedomain.com/testco/_packaging/be64f838-0b3e-42b4-92cc-bce7c435274a/nuget/v3/index.json'.
https://api.nuget.org/v3/index.json: Невозможно загрузить индекс сервиса
для источника https://api.nuget.org/v3/index.json. Произошла ошибка
при отправке запроса. Невозможно подключиться к удаленному серверу Нет
соединение может быть установлено, потому что целевой компьютер активно отказался
это 72.21.81.200:443 Не удалось найти версию пакета 1.3.2.
'MSTest.TestAdapter. C: \ Users \ TfsBuild.nuget \ packages: пакет
'MSTest.TestAdapter.1.3.2' не найден в источнике
'C: \ Users \ TfsBuild.nuget \ пакеты \'.
https://tfs2.somedomain.com/testco/_packaging/be64f838-0b3e-42b4-92cc-bce7c435274a/nuget/v3/index.json:
Пакет 'MSTest.TestAdapter.1.3.2' не найден в источнике
«https://tfs2.somedomain.com/testco/_packaging/be64f838-0b3e-42b4-92cc-bce7c435274a/nuget/v3/index.json'.
https://api.nuget.org/v3/index.json: Невозможно загрузить индекс сервиса
для источника https://api.nuget.org/v3/index.json. Произошла ошибка
при отправке запроса. Невозможно подключиться к удаленному серверу Нет
соединение может быть установлено, потому что целевой компьютер активно отказался
это 72.21.81.200:443)
Я предполагаю, что сервер сборки каким-то образом обходит прокси и пытается напрямую получить пакеты NuGet, но я не знаю как. Исходный код пакета на сервере сборки - тот же, который я использовал в Visual Studio. Разрешения не являются проблемой, потому что, когда пакеты существуют локально в управлении пакетами, сборка завершается успешно.
Кто-нибудь знает, почему это работает из Visual Studio, но не работает на сервере сборки?
UPDATE
Я знаю, где сборка минует входной канал. Есть флажок «Использовать пакеты от NuGet.org». Когда я снимаю галочку, TFS больше не пытается перейти непосредственно на NuGet.org. Однако я обнаружил новую проблему. Когда я настраиваю TFS для использования прокси, «Использовать пакеты из этого канала VSTS / TFS» больше не будет отображать мой локальный канал. Если я удалю настройки прокси, канал будет указан в списке, но исходный источник не работает.
Кто-нибудь знает, как настроить TFS 2018 за прокси-сервером, чтобы оба исходящих пакета ресурсов могли использоваться вместе с локальными ресурсами пакета как в TFS, так и в Visual Studio?