使用Cake将特定的nugets更新为所需的版本

时间:2018-02-18 12:34:57

标签: c# cakebuild

我有一个蛋糕版本,我用它来更新像这样的Nugets

Task("Update-NuGet-Packages")
.Does(() =>
{
    NuGetUpdate(@"D:\FooBar\FooBar.sln");
});

这会在所有解决方案项目中将nuget更新为最新版本,但是有一个选项可以传递包名称和版本,就像我们通过包控制台一样

Update-Package NLog -Version 3.5.0

1 个答案:

答案 0 :(得分:3)

您可以将NuGetUpdateSettings传入第二个参数,其中包含要更新的Id列表:

Task("Update-NuGet-Packages")
.Does(() =>
{
    NuGetUpdate(@"D:\FooBar\FooBar.sln",
                new NuGetUpdateSettings(){
                       Id = new [] { "Newtonsoft.Json", "HumbleConfig" }
                     });
});

但是,查看NuGetUpdater似乎并没有传递版本号的方法。看起来难以扩展,我确信他们很乐意接受PR。

NuGetUpdateSettings - https://github.com/cake-build/cake/blob/main/src/Cake.Common/Tools/NuGet/Update/NuGetUpdateSettings.cs

NuGetUpdater - https://github.com/cake-build/cake/blob/main/src/Cake.Common/Tools/NuGet/Update/NuGetUpdater.cs