【问题标题】:Dotnet build behaves differently when executed from TeamCity从 TeamCity 执行时,Dotnet 构建的行为不同
【发布时间】:2020-12-23 02:34:56
【问题描述】:

我们看到一个 Lucene.NET 分析器构建警告,当我们为我们的一个 ASP.NET Core 3.1 Web 应用程序执行 dotnet build 时,该警告不应该出现。奇怪的是,这个警告似乎只在使用 TeamCity 中的 .NET 运行程序执行时才会发生;当直接从 PowerShell 运行程序或从同一台计算机上的 PowerShell 控制台(使用相同的用户帐户、相同的文件夹、相同的代码)运行 dotnet build 命令时,它(正确地)不会发生。

构建警告实际上是由于a bug(在更高的 Lucene.NET 版本中已修复),但关键是我们看到了不同的行为。

我们已尝试运行构建日志中显示的完全相同的命令,包括将 TeamCity 生成的 RSP 文件传递​​给它。尽管如此,在 .NET 运行器之外,我们仍无法重现该警告。我们确认相同的用户帐户运行该进程,使用相同的 NuGet 缓存和 dotnet.exe(和 .NET SDK),在相同的文件夹中运行相同的代码,具有相同的参数。

我们唯一能想到的是,.NET 插件以某种方式执行 dotnet build 的方式不同,但在构建日志中是不可见的。但是,我们不知道还有什么可以尝试或调查的。

您能否帮助确定两个版本的差异可能在哪里?提前谢谢!

我之前在TeamCity forum 上问过这个问题,但没有得到回复。

【问题讨论】:

  • 我知道dotnet build 和 Visual Studio 做的事情非常不同。不知道以什么方式。可能是团队城市 .NET 跑步者使用 Visual Studio 而不是 dotnet
  • 如果您在构建脚本中使用 PowerShell 和 dotnet,它的行为是否正确?
  • 是的,如果我们使用与 PowerShell 构建步骤相同的命令和相同的参数,那么它是正确的,就像它来自 VM 上的 PS 控制台一样。只有在使用 .NET Runner 时才会出现问题(我们是否愿意使用它是个问题,我认为这对于格式良好的日志是必要的,但我们正在调查)。
  • 根据您使用的 Team City 版本,应该有一个名为 `.NET Core (dotnet) 的 Runner type。我会用那个。 blog.jetbrains.com/teamcity/2016/11/teamcity-dotnet-core
  • 嗯,我不确定这个插件有何不同(“.NET”插件使用相同的 dotnet.exe 命令),但感谢您的提示,我们会​​检查一下。跨度>

标签: c# .net-core teamcity dotnet-build


【解决方案1】:

我们最终只是直接运行 dotnet build,而不是使用 .NET Runner。它还大大缩短了某些构建的时间(40-50% 有很多构建警告)。

【讨论】:

    猜你喜欢
    • 2014-02-05
    • 2018-06-02
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 2022-01-18
    • 2019-12-24
    相关资源
    最近更新 更多