У меня есть проект .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
файлом.
Спасибо