我有一个WinUI 3应用程序,我使用以下代码来获取应用程序版本信息:

assembly = Assembly.GetEntryAssembly();
assembly.GetCustomAttribute<AssemblyInformationalVersionAttribute>()?.InformationalVersion

之前,我使用的是Windows 11-22H2和Visual Studio 2022 v17.7+net7.0 上述代码的输出如下所示:

4.0.0

今天我将Windows(全新安装)更改为23 H2和Visual Studio 2022 v17.8 /Visual Studio 2022 v18.0-Preview 1 + net8.0 但是当我运行我的应用程序(从Visual Studio)时,上述代码的输出几乎如下:

4.0.0 + ea32asd354ad5a4d5a4sda5a54da54da4das54da4d

我将.Net版本改为net7.0,或者我转移到以前的版本(从git),结果输出很奇怪. 但当我从微软store 运行我的应用程序时,输出是正确的,或者当我创建一个新项目时,输出是正确的,但我不知道为什么我的项目被删除

推荐答案

这不是一个错误,而是一个突破性的变化. 正如在Developer Community中所讨论的,.NET SDK:Source Link included in the .NET SDK中包含了一个新的行为.

要获得之前的行为并避免将提交id显示在Assembly InformationalVersion中,请在您的.csproj文件中包含以下设置:

<IncludeSourceRevisionInInformationalVersion>false</IncludeSourceRevisionInInformationalVersion>

Csharp相关问答推荐

如何打印已添加到List的Linq值,而不是C#中的:System.Collections.Generic.List ' 1[System.Int32]?

在Dapper中使用IasyncEum重写GetAsyncEum方法

Serilog SQL服务器接收器使用UTC作为时间戳

EF Core 8—应用客户端投影后无法转换集操作

System. InvalidOperationException:无法将数据库中的字符串值i转换为映射的ItemType枚举中的任何值''''

如何在Visual Studio代码中更改大括号模式{},用于C#语言

Azure Function应用(. NET 8)不将信息记录到应用洞察

在具有主构造函数的类中初始化属性时出现警告

Blazorise折线图仅绘制数据集的一部分

C#带主体的主构造函数?

如何在C#中将方法/线程启动传递给基本构造函数

链接到字典字符串.拆分为(.Key,.Value)

VS 2022与VS 2019:如何/为什么创建额外的任务?

.NET8Blazor-为什么Rapzor渲染在for循环之后显示?

错误:此版本的Visual Studio无法打开以下项目

如何在C#控制台应用程序中获取用户输入并将其作为订单项目进行处理?

处理方法内部过滤与外部过滤

为什么C#中的类型别名不能在另一个别名中使用?

ASP.NET核心中的验证错误-该字段为必填字段

使用c#中的Windows 10关机消息