2016-10-31 2 views
0

Я создал пару пакетов MyGet, которые я нажал на свой канал. Я успешно ссылался на эти пакеты в своем проекте. Я вижу пакеты, перечисленные в диспетчере пакетов NuGet, и я вижу их загруженные в «Пользователи [имя_пользователя] .nuget \ packages. Фактически, когда я удалил эти папки в папке пакетов и вернулся к восстановлению пакетов в своем решении, я увидел, что папки были загружены снова. Конечно, эти ссылки перечислены и в файле project.json.Сбор неисправностей с использованием пакета MyGet в .NET Core project

До этого момента все выглядит хорошо.

Затем я попытался ссылаться на класс из одного из этих пакетов, и Visual Studio не может найти его вообще. Это просто дает мне стандартную ошибку «тип или пространство имен ... не существует». Кроме того, я попытался вытащить пакеты в объектном проводнике, чтобы узнать, может ли это просматривать классы, но он не смог найти перечисленные в нем пакеты, в то время как он мог видеть все другие пакеты Nuget, которые были снесены.

Я даже отправился в свой канал MyGet, чтобы загрузить пакет и убедиться, что все классы и интерфейсы перечислены и, конечно же, все они есть.

Итак, чтобы напомнить - Мои ссылки на проекты выглядят отлично. Внутренние части пакета выглядят прекрасно. VS загружает пакеты в User [user] .nuget \ packages. Однако я полностью не могу использовать пакеты в своем коде.

Я не знаю, имеет ли это значение, но это VS 2015, и я использую .NET Core.

Как это можно решить?

Solution Explorer showing that the 3 packages can't be expanded for more details.

+0

Как вы создали эти пакеты? 'dotnet pack' на другой project.json или nuspec + csproj? –

+0

Я добавил nuspec. Это xproj, так как это ядро ​​.NET. – lostdeveloper

+0

hmm .. Если вы используете .net core tooling для пакета nuget, вам не нужен nuspec, только project.json, а затем выполните 'dotnet pack -c Release', и он должен помещать' .nupkg' где-нибудь в папке 'bin'. правильная компоновка пакетов для пакетов с несколькими таргетингами является немного сложной, поэтому «dotnet pack» является вашим лучшим другом для ядра .net. –

ответ

1

Пожалуйста пакет .NET пакеты ядра с следующим кодом сценария, добавленный в project.json файл.

"scripts": { 
"postcompile": [ 
    "dotnet pack --no-build --configuration %compile:Configuration%" 
    ] 
} 

После компиляции вашего проекта .NET Core он будет генерировать файл .nupck в файле \ bin \ debug. Затем загрузите этот пакет в фид NuGet и установите его в свой проект.

Если я упакую пакеты .NET Core с помощью шагов, которые используют файл nuspec, я получаю ту же проблему с вами. Проект .NET Core отличается от общего проекта, который представляет собой пакеты менеджера с project.json. Поэтому упакуйте пакеты .NET Core с помощью файла project.josn.

+0

Спасибо за помощь! Это поставило меня на правильный путь и решило проблему. Однако для получения пакета в MyGet я использовал несколько иной подход. Я взял совет Венди и добавил линию к конфигурации. Как только это было сделано, я все еще использовал MyGet Build Services, чтобы вытащить код непосредственно из GitHub, а также создавать и развертывать мои пакеты, а не загружать пакет вручную. Еще раз спасибо, что помогли мне решить эту проблему. – lostdeveloper

+0

приятный :) thnx – mitsbits

Смежные вопросы