首页 > 解决方案 > 获取.Net Core 3.1 单文件可执行版本号

问题描述

我有一个已发布为单个文件可执行文件的 .Net Core 应用程序。当我从 Visual Studio 中运行以下任何代码时,我得到了预期的结果:

Assembly.GetAssembly(typeof(Installer)).GetName().Version.ToString();
Assembly.GetEntryAssembly().GetName().Version.ToString();
Assembly.GetExecutingAssembly().GetName().Version.ToString();

但是当上述代码在已发布的应用程序(生产中)中运行时,它总是返回“0.0.0.0”

标签: c#asp.net-coreversion

解决方案


你试过这个吗?我创建了一个新项目,它似乎工作。

假设您使用的是 Visual Studio 2019。

  1. 右键项目->添加->新建项目->装配信息文件
  2. 然后,您将拥有一个 AssemblyInfo.cs 文件,其中包含程序集版本
  3. 然后,您需要忽略生成的程序集版本,因此您需要将带有 false 的 GenerateAssemblyInfo 添加到您的 .csproj。
  4. 右键单击项目 -> 编辑项目文件 -> 添加 GenerateAssemblyInfo 元素,如下所示:

    <Project Sdk="Microsoft.NET.Sdk.Web">
       <PropertyGroup>
          <TargetFramework>netcoreapp3.1</TargetFramework>
          <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
       </PropertyGroup>
    </Project>
    

推荐阅读