У меня есть проект .NET Standard 2.0 под названием ProjectName.Logging
с файлом ProjectName.Logging.nuspec
.
На этот файл есть ссылка в .csproj
моего проекта
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RestoreProjectStyle>PackageReference</RestoreProjectStyle>
<NuspecFile>ProjectName.Logging.nuspec</NuspecFile>
</PropertyGroup>
Вот мой .nuspec
<?xml version="1.0"?>
<package >
<metadata>
<id>ProjectName.Logging</id>
<version>1.2.1</version>
<authors>Jérôme MEVEL</authors>
<description>Just a logging component</description>
<dependencies>
<dependency id="Dapper" version="1.50.5" />
<dependency id="Another.Project" version="1.1.1" />
<dependency id="Microsoft.Extensions.DependencyInjection" version="2.1.1" />
<dependency id="Microsoft.Extensions.Logging" version="2.1.1" />
<dependency id="Microsoft.Extensions.Logging.Abstractions" version="2.1.1" />
<dependency id="NLog" version="4.5.8" />
<dependency id="NLog.Extensions.Logging" version="1.2.1" />
<dependency id="NLog.Web.AspNetCore" version="4.6.0" />
<dependency id="System.Data.SqlClient" version="4.5.1" />
</dependencies>
</metadata>
<files>
<file src="bin\Release\netstandard2.0\ProjectName.Logging.dll" target="lib/netstandard2.0/ESHCloud.Logging.dll" />
<file src="ProjectName.Logging.targets" target="build/ProjectName.Logging.targets" />
<file src="NLog/Nlog.config" target="content/Nlog.config" />
</files>
</package>
Как видите, я вручную включаю ProjectName.Logging.dll
файл, и мне даже нужно включить Release
, потому что использование переменной MsBuild $(Configuration)
не работает в моем .nuspec
файле.
Я упаковываю проект, выполнив эту команду в каталоге моего проекта
dotnet pack --output C:/Nuget --force
и если я удалю элемент <files>
из своего .nuspec
при запуске команды dotnet pack
, мой сгенерированный пакет Nuget будет полностью пустым.
С другой стороны, если я запустил команду dotnet pack
без файла .nuspec
, абсолютно все в моем проекте будет включено в пакет Nuget.
Так в чем же дело с командой dotnet pack
? Я не понимаю, что делаю не так.
Как включить DLL моего проекта в пакет Nuget без указания конфигурации (Debug
или Release
)?
И последнее: Я не хочу использовать команду nuget pack
.
Я достаточно наигрался с Nuget на наших серверах VSTS (недавно переименованных в Azure DevOps), и у меня нет полного контроля над этими серверами сборки (у моего менеджера есть, но он, кажется, слишком занят, чтобы заботиться об этом).
Подводя итог, nuget pack
- не вариант для меня. Я хочу использовать dotnet pack
вместе с файлом .nuspec
.
Спасибо