Сначала убедитесь, что Shape
и Factory
общедоступны. Если вы не укажете их видимость, по умолчанию они являются закрытыми, что означает, что они не могут быть использованы непосредственно другими проектами, ни как ссылки на пакеты, ни как ссылки на проекты.
Когда вы упаковываете master
в пакет NuGet, он создает файл по умолчанию bin\Debug\master.1.0.0.nupkg
. Предполагая, что master
нацелен на .NET Standard 2.0, dll мастера сохраняется как lib\netstandard20\master.dll
в nupkg
. Вам нужно добавить / отправить этот nupkg
в ленту новостей (это может быть каталог на вашем компьютере или в сети, nuget.org или вы можете разместить свой собственный канал ). Вашему comsumer
проекту потребуется nuget.config
, который добавляет правильный канал NuGet в качестве источника, затем вы добавляете ссылку на пакет в основной пакет. После восстановления (что Visual Studio делает автоматически, если вы добавили пакет с пользовательским интерфейсом), вы можете использовать любой из общедоступных классов мастера.
Вот команды, которые вы можете запустить в командной строке для настройки двух проектов: один - пакет, а другой - его использование. Если вы используете .NET Core в Visual Studio, он, должно быть, уже скачал .NET Core SDK, который помещает dotnet cli на ваш путь. Вам также необходимо скачать nuget.exe из https://www.nuget.org/downloads/.
dotnet new nugetconfig
nuget source -configfile nuget.config add -name local -source feed
# create an isolated nuget environment, because I don't like to populate
# my global packages folder with test packages
nuget config -configfile nuget.config -set globalPackagesFolder=gpf
# create a library, pack it, and add the nupkg to our local feed
dotnet new classlib -n MyLib
dotnet pack MyLib\MyLib.csproj -o nupkgs\
nuget add MyLib\bin\Debug\MyLib.1.0.0.nupkg -s local
# create console app and reference MyLib
dotnet new console -n MyApp
dotnet add MyApp\MyApp.csproj package MyLib --version 1.0.0
#if you want to open these projects in Visual Studio
dotnet new sln -n sample
dotnet sln add MyLib\MyLib.csproj
dotnet sln add MyApp\MyApp.csproj
start sample.sln
Обычно вы не используете пакет NuGet для использования одного проекта из другого проекта в том же решении. Просто создайте для них ссылки на проекты, и когда вы упаковываете проект в пакет NuGet, ссылка на проект становится зависимостью NuGet. Я сделал это только так, чтобы продемонстрировать, как легко использовать пакет, который вы создали сами.