【发布时间】:2017-10-12 08:32:43
【问题描述】:
我正在 TeamCity 中为 .Net Core 项目构建一组构建模板。一切都很好,除了控制台项目。问题是当我去发布解决方案时,我需要指定框架版本。在构建的其他任何时候,我都不需要知道框架。至少在发布 .sln 文件时是这样,控制台项目只有一个目标框架。
所以现在我需要弄清楚控制台项目应该针对什么框架。我可以阅读各种 XML 文件,但我希望我不需要。是否有一些内置方法可以查询给定解决方案正在使用的框架?
例如,类似 (PowerShell)
$frameworks = & dotnet.exe --<what I want> .\MySolution.sln
for ($framework in $frameworks) {
& dotnet.exe publish -f $framework .\MySolution.sln
}
这样我就不需要在每次使用新框架时都修改构建系统。我在 CLI 存储库中四处寻找,但找不到可以满足我需要的命令。打开 .csproj 文件是我唯一的希望吗?
【问题讨论】:
-
你看过project.json文件了吗,里面应该有你要找的信息
-
project.json 不再受支持,对于 VS2017,该信息可作为
RuntimeIdentifier属性获得。即使您可以使用 msbuild 评估来获取它,这也很棘手..
标签: c# visual-studio msbuild .net-core csproj