Использование dotnet cli:
Как @ Лекс Ли предлагает использовать команду типа dotnet add package xxx
для ссылки на локальный пакет, созданный вами, вы можете выбратьчтобы настроить локальный канал и передать его в канал перед тем, как вы это сделаете. (Вы также можете опубликовать пакет на nuget.org и других каналах)
Простой способ настройки локального канала: Nuget.Конфигурационный файл управляет поведением потребляемого пакета nuget, вы можете найти файл Nuget.config , который работает для вашего текущего пользователя по адресу: %appdata%\NuGet\NuGet.Config
.Вы можете использовать оператор как:
<add key="Local Packages" value="C:\path\..." />
, чтобы установить папку в качестве локального канала.Затем поместите в него файл xx.nupkg, и проблема исчезнет.Также вы можете установить подачу с помощью пользовательского интерфейса в VS, см. Мое следующее описание в Install it by VS
.(Кроме того, вы также можете использовать Nuget Server .)
Установить его с помощью VS:
И так как выпытаясь использовать пакет на локальном компьютере с установленной VS, вы также можете рассмотреть возможность использования пользовательского интерфейса диспетчера пакетов VS Nuget, см. этот документ .
Простой способ сделать это в VS - этоперейдите Tools=>nuget package manager=>package manager settings=>package source
, нажмите зеленую кнопку, чтобы определить новый источник пакета, например C:\xxx\MyLocalPackages
:
Скопируйте файл xxx.nupkg в папку,и в VS щелкните правой кнопкой мыши проект => Управление пакетами nuget => выберите правильный источник пакета, и вы можете легко его использовать:
Папка будеттакже работает для вас как локальный канал.
Кроме того:
Я создаю файл .nupkg с помощью команды cli dotnet pack .Вы можете переименовать xx.nupkg в xx.zip и проверить содержимое его папки lib
.Убедитесь, что сборки упомянутых двух проектов находятся там (я столкнулся с этой новой проблемой после того, как решил исходную проблему). Если их там нет, вы можете получить похожую проблему, такую как this , и вот обходной путь из Martin .
Update1: (более подробная информация об обходном пути Martin) Выгрузите проект в VS для редактирования xx.csproj,добавьте в него этот скрипт:
<Project>
...
<PropertyGroup>
<TargetsForTfmSpecificBuildOutput>$(TargetsForTfmSpecificBuildOutput);IncludeP2PAssets</TargetsForTfmSpecificBuildOutput>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include = "..\ProjectName\ProjectName.csproj" PrivateAssets="All" />
</ItemGroup>
<Target Name = "IncludeP2PAssets" >
<ItemGroup>
< BuildOutputInPackage Include="$(OutputPath)\ProjectName.dll" />
</ItemGroup>
</Target>
</Project>
Замените ProjectName на имя проекта, от которого вы зависите.Затем соберите его в VS, и вы можете найти xx.nupkg в bin \ debug или bin \ release.(Это должно работать для ядра .net или стандарта .net, и я проверил это)
Любое обновление не стесняйтесь, дайте мне знать:)