You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Visual Basic与.NET 6时,如何在代码中访问PublishVersion?

.NET 6 获取Visual Studio自动递增PublishVersion的解决方案

方案1:项目文件同步版本号(最简单直接)

在项目文件(.csproj或.vbproj)中添加以下配置,让Visual Studio自动递增的PublishVersion同步到程序集版本,无需手动修改AssemblyVersion:

<PropertyGroup>
  <!-- 启用修订号自动递增,格式为主版本.次版本.* -->
  <PublishVersion>1.0.*</PublishVersion>
  <!-- 将PublishVersion同步到程序集版本和文件版本 -->
  <AssemblyVersion>$(PublishVersion)</AssemblyVersion>
  <AssemblyFileVersion>$(PublishVersion)</AssemblyFileVersion>
</PropertyGroup>

配置完成后,每次发布时Visual Studio会自动递增修订号,程序集版本也会同步更新。在代码中读取版本信息:

using System.Reflection;

var currentVersion = Assembly.GetExecutingAssembly().GetName().Version;
Console.WriteLine($"当前发布版本:{currentVersion}");

方案2:MSBuild生成版本信息文件

如果需要单独获取PublishVersion而不依赖程序集版本,可以通过MSBuild自动生成包含版本信息的文件:

  1. 在项目中创建一个模板文件VersionTemplate.cs,内容如下:
namespace YourAppNamespace;
public static class PublishVersionInfo
{
    public const string CurrentVersion = "$(PublishVersion)";
}
  1. 在项目文件中添加配置,让MSBuild在编译前替换模板中的变量并生成实际文件:
<ItemGroup>
  <None Include="VersionTemplate.cs" />
  <Compile Include="VersionInfo.g.cs" />
</ItemGroup>

<Target Name="GeneratePublishVersionFile" BeforeTargets="CoreCompile">
  <Copy SourceFiles="VersionTemplate.cs" DestinationFiles="VersionInfo.g.cs" OverwriteReadOnlyFiles="true">
    <ReplaceTokens SourceFiles="VersionTemplate.cs" DestinationFiles="VersionInfo.g.cs">
      <Tokens>
        <Token Name="PublishVersion" Value="$(PublishVersion)" />
      </Tokens>
    </ReplaceTokens>
  </Copy>
</Target>

发布后,VersionInfo.g.cs会被自动生成,直接在代码中调用PublishVersionInfo.CurrentVersion即可获取自动递增的发布版本号。

方案3:ClickOnce发布场景(有限支持)

如果使用ClickOnce发布.NET 6应用,可以读取发布清单文件中的版本信息,但这种方式仅适用于ClickOnce场景,通用性不如前两种方案。

内容的提问来源于stack exchange,提问作者Computing Troubleshooter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 13:57:37