用于 NuGet 打包等的 .NET 核心项目的版本存储在哪里

Where to store version for .NET core project for NuGet packaging, etc

我正在使用 TeamCity 构建我的 .NET 核心应用程序并将其发布到 NuGet。

我一直在使用 project.json 文件来存储版本,但是对于最新版本的 .NET core,project.json 文件已经过时,因为所有内容都已移至项目的 . .csproj 文件。所以我想为版本信息找一个新家。

以下是我能想到的一些可能性。

  1. 继续使用 project.json,但仅用于存储版本信息(感觉不是永久解决方案)
  2. 将版本存储在单独的文件中,如 version.txt
  3. 使用标签或类似的东西以某种方式将其存储在 GitHub 中。这感觉像是理想的解决方案。

我最喜欢选项 3。用于存储发布点(1.0、2.0 等),然后使用之后附加的一些日期时间。但我不确定这是否可行或是否值得推荐。

鉴于您的项目在 GitHub 中并且您使用的是最新的 .NET 核心,建议的存储版本信息的方法是什么?

将它放在 .csproj 文件中有问题吗?

至于建议 - 有多种方法可供选择,具体取决于您。

使用 .NET Core,可以在项目文件 (.csproj) 中指定程序集信息。如何在项目文件中定义它取决于您。

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.0</TargetFramework>
    <AssemblyVersion>1.4</AssemblyVersion>
  </PropertyGroup>

</Project>

您可以对其进行硬编码。或者 运行 一些其他的 MSBuild 任务来生成它。

AssemblyFileVersion 和 AssemblyInformationalVersion 应该以相同的方式工作。

构建项目时,会在 obj/Debug/netcoreapp1.0/ 目录中生成一个 AssemblyInfo.cs 文件。