我的公司使用内置的TeamCity NuGet回购来创建经常相互依赖的自定义NuGet软件包。例如,当我更新自定义父包中的.cs页面时,我希望这些更改能够传播到作为父包依赖包的所有包中-我相信我可以使用NuGet安装程序来完成此操作,“包”。
我担心的是,虽然我知道可以对所有软件包强制执行此更新,但我想找到一种方法来排除公司回购协议中未托管的任何内容(这也意味着NuGet中托管的所有内容) .org repo),因此我们从外部来源使用的任何内容都不会包含在此NuGet更新中。
最好,我想知道是否有一种方法可以在我们的.nuspec中为每个包进行处理(尽管通配符似乎无法完成此操作)。对我的问题有任何见解吗?
答案 0 :(得分:0)
老实说,这听起来有点像您正在尝试使用NuGet软件包重新创建项目参考体验。如果这样做绝对合理,那么也许最好的选择是将所有项目都放在一个解决方案中,而改用项目引用。
如果您能够将项目迁移到SDK样式的项目(.NET Core使用,但仍可以将.NET Framework作为目标),则可以使用dotnet list package
或dotnet-outdated
工具。 dotnet list package --outdated
可以指定要使用的来源列表。也许,如果您仅指定您的私人供稿,则只能搜索该供稿。否则,您创建的用于执行所有操作的脚本将需要覆盖nuget.config
文件,以在运行命令以获取所需输出时删除其他源(例如nuget.org)。然后,您解析输出,当它找到更新时,它将修改相关文件。