У меня есть пакеты Nuget, созданные из двух проектов: foo.csproj
и bar.csproj
. При использовании nuget update
я бы хотел bar
обновить foo
до последней версии , соответствующей 3.0. *, И отклонить любой 3.1. *:
бар packages.config
<packages>
<package id="Newtonsoft.Json" version="12.0.1" targetFramework="net461" />
<package id="foo" version="3.0.4" targetFramework="net472" allowedVersions="3.0" />
</packages>
bar.nuspec
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>var</id>
<version>3.0.4</version>
<!-- omitted -->
<!-- no dependency node in this .nuspec file - good, I think -->
</metadata>
</package>
и в моем фиде Nuget есть:
- foo.3.0.0.nupkg
- foo.3.0.1.nupkg
- foo.3.0.2.nupkg
- foo.3.0.3.nupkg
- foo.3.0.4.nupkg
Если я позвоню nuget update
, он обновит файл packages.config
правильно - ууу!
Однако, когда я вызываю nuget pack bar.csproj
, он генерирует файл .nupkg, который включает в себя следующий bar.nuspec файл:
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>var</id>
<version>3.0.4</version>
<!-- omitted -->
<dependencies>
<dependency id="Newtonsoft.Json" version="12.0.1" />
<dependency id="foo" version="3.0.0" />
</dependencies>
</metadata>
</package>
Я ожидал, что nuget pack
будет соблюдать атрибут packages.config allowedVersions
при создании узла dependency
внутри файла .nupkg.
Как заставить nuget update
и nuget pack
работать вместе, чтобы поддерживать актуальность последней версии 3.0. * Версии foo
(в данном примере 3.0.4)?