以前在RC.x中工作的任何东西都不再有用。
我试过这些:
PlatformServices.Default.Application.ApplicationVersion;
的typeof(控制器).GetTypeInfo()Assembly.GetCustomAttribute< AssemblyFileVersionAttribute>()版本;
它们都返回1.0.0.0而不是1.0.0-9应该是在sudo xcodebuild -license
dotnet publish --version-suffix 9
后执行的
基本上他们从附图中给我“文件版本”而不是project.json: "version": "1.0.0-*"
实际上似乎改变的“产品版本”。
答案 0 :(得分:27)
对于版本1.x:
Assembly.GetEntryAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion;
对于版本2.0.0,此属性包含丑陋的内容:
2.0.0 built by: dlab-DDVSOWINAGE041
所以请使用这个:
typeof(RuntimeEnvironment).GetTypeInfo().Assembly.GetCustomAttribute<AssemblyFileVersionAttribute>().Version;
答案 1 :(得分:15)
我会在ASP.NET Core 2.0 +
上这样做var assemblyVersion = typeof(Startup).Assembly.GetName().Version.ToString();
答案 2 :(得分:5)
这对我也有用:
@Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationVersion
适用于csproj文件 - &lt; Version&gt; 1.2.3.4或&lt; VersionPrefix&gt; 1.2.3&lt; / VersionPrefix&gt;。但是&lt; VersionSuffix&gt;没有像this doc所说的那样被认可。
答案 3 :(得分:1)
在.Net Core 3.1中,我使用以下命令直接在视图中显示版本:
@GetType().Assembly.GetName().Version.ToString()
这显示了csproj文件中的程序集版本:
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<FileVersion>2.2.2.2</FileVersion>
<Version>4.0.0-NetCoreRC</Version>
</PropertyGroup>
如果要在View中使用System.Reflection显示“其他” FileVersion或“信息”版本属性:
using System.Reflection;
.... bunch of html and stuff
<footer class="main-footer">
<div class="float-right hidden-xs">
<b>Assembly Version</b> @(Assembly.GetEntryAssembly().GetName().Version)
<b>File Version</b> @(Assembly.GetEntryAssembly().GetCustomAttribute<AssemblyFileVersionAttribute>().Version)
<b>Info Version</b> @(Assembly.GetEntryAssembly().GetCustomAttribute<AssemblyInformationalVersionAttribute>().InformationalVersion)
</div>
</footer>
请注意,在添加System.Reflection之后,原始@GetType()。Assembly.GetName()。Version.ToString()行返回0.0.0.0,您需要使用@ Assembly.GetEntryAssembly()。GetName() 。版本
有一篇博客文章here
编辑:确保对Version字符串遵循正确的命名约定。通常,他们需要以数字开头。如果不这样做,则将构建您的应用程序,但是当您尝试使用NuGet添加或还原软件包时,会出现类似“ anythingGoesVersion”的错误,该字符串不是有效的版本字符串。或更神秘的错误:缺少必需的属性“名称”。输入文件:C:\ Users .... csproj。 更多here: