我有从两个项目创建的Nuget软件包:foo.csproj
和bar.csproj
。使用nuget update
时,我希望bar
更新foo
到匹配latest version的3.0。*,并拒绝所有3.1。*:
barpackages.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提要中,我有:
如果我调用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>
在生成.nupkg文件中的nuget pack
节点时,我希望allowedVersions
遵守 packages.config dependency
属性。
我如何使nuget update
和nuget pack
一起工作,以使最新的foo
3.0。*版本(在本示例中为3.0.4)保持最新状态?
答案 0 :(得分:0)
如果您从allowedVersions
文件中删除packages.config
属性,我希望它会按您的意愿工作。