Есть ли .NET (Core) эквивалент ссылки npm? - PullRequest
0 голосов
/ 30 мая 2019

По сути это означает, «как я клонирую проект .NET, вносю изменения и использую его, а не опубликованный?»

В NodeJS у нас есть npm link, что позволяет вам связыватьлокальный пакет (модуль) в вашем каталоге node_modules /, для вашего текущего проекта.Так, например, вместо использования Express в вашем package.json, вы можете

  1. Clone Express
  2. Внести изменения, чтобы выразить
  3. Compile (транспорт, если необходимо)и / или построить
  4. Выполнить npm link в репо Express, чтобы создать глобально доступный локальный пакет
  5. Выполнить npm link express в вашем текущем проекте, чтобы использовать локальный экспресс, а не тот, который вы бы сделалиполучить, если вы npm install это.

С .NET самое близкое решение, которое я видел до сих пор, включает создание локального канала , но в моих экспериментах это не похожеработать.Другие вопросы о переполнении стека, такие как , как использовать локальные пакеты в .net , предлагают решения с использованием RestoreSources, которые практически не документированы во всем Интернете.При попытке изменить RestoreSources для использования каталога LocalPackages мне не ясно, используются ли локальные пакеты или нет (кажется, что источник в каталоге obj / по-прежнему поступает из пакета nuget, а не из локального).

1 Ответ

0 голосов
/ 04 июня 2019

Для тех, кому в будущем интересно, правильный ответ - использовать локальный канал . Моя проблема заключалась в том, что я кэшировал пакеты nuget, которые разрешались во время dotnet restore.

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

dotnet nuget locals all --clear
dotnet restore

По сути, вам нужно иметь в своем решении конфигурацию nuget (NuGet.config), которая настраивает локальный каталог пакетов:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
    <clear />
    <add key="LocalDev" value="./my-project/artifacts" />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>

Где каталог artifacts / содержит все пакеты .nupkg, которые вы хотите использовать во время восстановления. Очевидно, что также важно убедиться, что эти пакеты собраны / скомпилированы перед тем, как вы dotnet restore в своем основном решении:

dotnet pack /p:Version=5.22.12 --configuration Release --force --output "%~dp0artifacts";
...