c# - 获取.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”
解决方案
你试过这个吗?我创建了一个新项目,它似乎工作。
假设您使用的是 Visual Studio 2019。
- 右键项目->添加->新建项目->装配信息文件
- 然后,您将拥有一个 AssemblyInfo.cs 文件,其中包含程序集版本
- 然后,您需要忽略生成的程序集版本,因此您需要将带有 false 的 GenerateAssemblyInfo 添加到您的 .csproj。
右键单击项目 -> 编辑项目文件 -> 添加 GenerateAssemblyInfo 元素,如下所示:
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>netcoreapp3.1</TargetFramework> <GenerateAssemblyInfo>false</GenerateAssemblyInfo> </PropertyGroup> </Project>
推荐阅读
- php - 如何检查用户是否存在pricing_plan_id?
- node.js - PM2 崩溃后自动重启
- javascript - 根据它的旋转将 div 从卡扇向外移动?
- chatbase - Chatbase 返回 200,但概览为空
- javascript - 按钮点击,一切都消失了
- qt - Qt:用另一个模型扩展 QFileSystemModel
- java - 放心:发布请求返回错误“JSON 输入文本不应为空或空”。
- html - 圆形进度条中的圆形图像 [CANVAS]
- ios - Firebase 不会报告 iOS 中的所有崩溃,而 Xcode 10 会报告所有崩溃,我们能否以某种方式跟踪 firebase 上的所有这些崩溃?
- android - Android RTL:阿拉伯语和希伯来语语言支持之间的差异