package-managers - 使用packages.config时如何递归调用nuget restore?
问题描述
我有一个非基于 .NET 的项目,我正试图将 nuget 用于管理依赖项。因此,我必须使用 packages.config 来定义项目的依赖关系。
现在,我已经完全按照我的意愿打包和推送了,但是当我恢复包时,它只恢复了我列出的 packages.config 中的依赖项,没有那个包的依赖项。因此,例如,如果我有一个应用程序 MyApp,它依赖于 Foo,然后依赖于 Bar,则在 MyApp 上调用 nuget restore 不会将 Bar 放入包文件夹中。
根据CLI 文档,-Recursive 标志不适用于使用 packages.config 的项目——这对我来说是个问题,因为我需要使用 packages.config,据我所知。或者至少,如果我能提供帮助,我真的不想再花 3 个小时将我的所有 12 个包转换为使用不同的格式。
作为参考,这里是我的文件的示例,目前:
MyApp 的 package.config
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Foo" version="1.0.0.0" allowedVersions="[1.0]" />
</packages>
Foo.nuspec
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<!-- Required elements-->
<id>Foo</id>
<version>1.0</version>
<description>Foo</description>
<authors>Tesset</authors>
<dependencies>
<dependency id="Bar" version="[1.0]" />
</dependencies>
</metadata>
<files>
<file src=".\lib\Foo\**" target="lib\Foo" />
</files>
</package>
酒吧.nuspec
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<!-- Required elements-->
<id>Bar</id>
<version>1.0</version>
<description>Bar</description>
<authors>Tesset</authors>
</metadata>
<files>
<file src=".\lib\Bar\**" target="lib\Bar" />
</files>
</package>
而且,为了完整起见,我将 nuget restore 称为:
nuget restore ".\MyApp\packages.config" -PackageSaveMode nuspec -OutputDirectory ".\MyApp\packages" -recursive
(是否有 -recursive 标志对于 Bar 是否最终出现在 packages 文件夹中没有区别)
那么,在 nuget 中是否有办法确保 Bar 在使用 packages.config 文件离开 MyApp(和 Foo)时得到恢复?如果没有,那么有没有办法恢复 nuspec 文件中列出的依赖项,所以我可以手动对nuget restore
放入的文件进行递归.\MyApp\packages
?
解决方案
推荐阅读
- charts - 谷歌图表 - 从 data.cache JSFiddle 中删除行
- python - 为什么此 None 过滤不适用于 pandas?
- swift - 如何在导航栏中隐藏/显示多个右键 swift 5
- javascript - 查找键并更新它的值和下一个键值 [Javascript 对象]
- sql - 用户被锁定。如何从谁那里得知?
- php - 如何修复在 WordPress 主题中不起作用的永久链接
- javascript - Next JS Redux 不更新服务器存储
- java - MongoJack 与 java.time
- vapor - 蒸汽“在范围内找不到‘模型’”错误
- actions-on-google - 无法访问我们项目的操作控制台