我正在为 .Net Core 项目在 TeamCity 中构建一组构建模板。除了控制台项目外,一切都运作良好。问题在于当我进行发布解决方案时,我需要指定框架版本。在构建的任何其他阶段,我都不需要知道框架版本。至少对于只有一个框架目标的控制台项目来说,这是正确的,与 .sln 文件一起发布时也是如此。
因此,现在我需要确定控制台项目应该针对哪个框架。我可以读取各种 XML 文件,但我希望不需要这样做。是否有一些内置的方式,可以查询给定解决方案中使用的框架?
例如,像这样(PowerShell)
$frameworks = & dotnet.exe --<what I want> .\MySolution.sln
for ($framework in $frameworks) {
& dotnet.exe publish -f $framework .\MySolution.sln
}
这样,每次使用新的框架时,我就不需要修改构建系统。我在CLI存储库中查找了一下,但是我找不到所需的命令。打开.csproj文件是唯一的希望吗?
RuntimeIdentifier
属性获得。虽然您可以使用 msbuild 评估来获取它,但这很棘手。 - Martin Ullrich