Я пытаюсь установить инструмент dotnet-svcutil на сервер без подключения к Интернету. Visual Studio также не установлена на сервере.
.NET 7 SDK уже установлен на сервере,
dotnet --version
дает:
7.0.100
Я скачал инструмент с сайта https://www.nuget.org/packages/dotnet-svcutil
Затем я попытался выполнить автономную установку, используя следующую команду:
dotnet tool install -g dotnet-svcutil --add-source D:\Install\dotnet-svcutil.2.1.0.nupkg
но, к сожалению, я получаю следующую ошибку:
C:\Users\admin\AppData\Local\Temp\3\a3fdc36c-b100-4e78-99ba-3f987d505581\restore.csproj : ошибка NU1301: Локальный источник «D:\Install\dotnet-svcutil.2.1.0.nupkg» не существует. Инструмент пакет восстановить не удалось. Инструмент dotnet-svcutil не смог установить. Эта неисправность могла быть вызвана:
- Вы пытаетесь установить предварительную версию и не использовали параметр --version для указания версии.
- Пакет с таким именем был найден, но это не инструмент .NET.
- Требуемый веб-канал NuGet недоступен, возможно, из-за проблемы с подключением к Интернету.
- Вы ошиблись в названии инструмента.
Чтобы узнать больше о причинах, в том числе о принудительном именовании пакетов, посетите https://aka.ms/failure-installing-tool
Есть ли что-нибудь еще, что я мог бы попробовать, чтобы установить инструмент?





Используйте только расположение папки без имени файла в качестве источника:
dotnet tool install -g dotnet-svcutil --add-source D:\Install --ignore-failed-sources
ЗАМЕЧАНИЯ:
Поскольку вы устанавливаете в автономном режиме, вам нужен флаг --ignore-failed-sources. Канал Nuget недоступен, и ваша установка завершится ошибкой, если один из источников будет недоступен. Доступ к каналам осуществляется параллельно. Отсюда:
--add-source <ИСТОЧНИК>
Добавляет дополнительный источник пакета NuGet для использования во время установки. Доступ к веб-каналам осуществляется параллельно, а не последовательно в каком-либо порядке приоритета. Если один и тот же пакет и версия есть в нескольких каналах, выигрывает самый быстрый канал.
Спасибо, это сработало. Я уже пытался использовать имя папки вместо полного пути, так что я думаю, что
--ignore-failed-sourcesдобился цели.