【发布时间】: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