gpt4 book ai didi

c# - Cake Build - 将 NuGet 包更新到最新版本

转载 作者:太空宇宙 更新时间:2023-11-03 12:10:10 25 4
gpt4 key购买 nike

我有一个包含 5 个项目的解决方案。每个项目都通过 nuget-push 部署。一些项目通过 nuget 引用其他项目。为了正常工作,必须在推送之前更新这些 nuget 包。

为此,我们使用 Cake-Build,但 nuget 更新不适用于核心/标准项目。相反,有必要使用删除 --> 添加,这对我不起作用?

我该如何处理?

例子:

  • 项目 A v1.0.0
  • 项目 B v1.0.0
  • 项目 C v1.0.0
    • 引用 A v1.0.0
    • 引用 B v1.0.0

现在构建脚本将编译 A 和 B,将版本增加到 v1.0.1,然后推送 nuget 包。在 C 构建之前,需要更新 A 和 B 的 nuget 包。

例子:

  • 项目 A v1.0.1
  • 项目 B v1.0.1
  • 项目 C v1.0.1
    • 引用 A v1.0.1
    • 引用 B v1.0.1

如何通过 Cake-Build 更新软件包?!?

最佳答案

如果您使用项目引用并构建为同一解决方案的一部分,您应该能够正确引用所有内容。这就是 Cake 本身的构建方式。

  • Cake.exe/dll 取决于
    • 蛋糕芯
    • Cake.Common 取决于
      • 蛋糕芯

当我们构建 0.30.0 时,我们将该版本作为通用 MSBuildSettings 传递给 Restore。构建和打包。粗略的例子

string configuration = "Release",
version = "0.30.0",
semVersion = "0.30.0"; // for pre-release this is suffixed i.e. -alpha-001

DotNetCoreMSBuildSettings msBuildSettings = new DotNetCoreMSBuildSettings()
.WithProperty("Version", semVersion)
.WithProperty("AssemblyVersion", version)
.WithProperty("FileVersion", version);


DotNetCoreRestore("./src/Cake.sln", new DotNetCoreRestoreSettings
{
Verbosity = DotNetCoreVerbosity.Minimal,
Sources = new [] { "https://api.nuget.org/v3/index.json" },
MSBuildSettings = msBuildSettings
});

DotNetCoreBuild("./src/Cake.sln", new DotNetCoreBuildSettings()
{
Configuration = configuration,
NoRestore = true,
MSBuildSettings = msBuildSettings
});

var projects = GetFiles("./src/**/*.csproj");

foreach(var project in projects)
{
DotNetCorePack(project.FullPath, new DotNetCorePackSettings {
Configuration = configuration,
OutputDirectory = "./nuget,
NoBuild = true,
NoRestore = true,
IncludeSymbols = true,
MSBuildSettings = msBuildSettings
});

.NET Core csproj 中的项目引用看起来像

<ProjectReference Include="..\Cake.Core\Cake.Core.csproj" />

关于c# - Cake Build - 将 NuGet 包更新到最新版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52778973/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com