【问题标题】:Where to store version for .NET core project for NuGet packaging, etc在哪里存储用于 NuGet 打包等的 .NET 核心项目的版本
【发布时间】:2017-02-07 01:57:16
【问题描述】:

我正在使用 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 核心,那么推荐的存储版本信息的方法是什么?

【问题讨论】:

    标签: nuget teamcity version .net-core .net-standard


    【解决方案1】:

    在 .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 文件。

    【讨论】:

    • 没问题,我只是不知道这是可能的。这似乎是目前最容易和最好的地方。我的一部分仍然想研究使用 GitHub 标记进行版本控制。谢谢。
    猜你喜欢
    • 2021-02-24
    • 2021-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    相关资源
    最近更新 更多