Project.jsonからアプリケーションのバージョンを表示するにはどうすればよいですか?使っています gulp-bump
バージョンを自動インクリメントしますが、最新バージョンを表示できません。これが私が試していることです:
@(Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationVersion)
これは機能せず、「1.0.0
"からの実際の値の代わりにproject.json
私もこれを試しましたが、RC2では動作しないようです:
@inject Microsoft.Extensions.PlatformAbstractions.IApplicationEnvironment appEnv
My version number is @(appEnv.ApplicationVersion)
このお知らせ のとおり、IApplicationEnvironment
は存在しません。
以下を使用してApplicationVersion
に静的にアクセスできます。
Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationVersion
わたしにはできる。俺の project.json
は次のようになります。
{
"version": "1.0.0.2",
// all the rest
}
そして、私のインデックスビューでは、上部に次の行があります。
@Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationVersion
そして、私は正しく1.0.0.2
を出力します。そして、その値を変更してアプリケーションを再起動(ビルド)すると、そこに新しいバージョンが表示されます。
Platform AbstractionsはASP.NET Core 1に同梱されていました であり、ASP.NET Core 2以降から削除されているため、バージョン2以上を使用している場合は、この行を置き換える必要があります。
Microsoft.Extensions.PlatformAbstractions.PlatformServices.Default.Application.ApplicationVersion
これで:
System.Reflection.Assembly.GetEntryAssembly().GetName().Version
前のリンク先ページの「API使用の置き換え」セクションで指定されているとおり。
this answer に記載されているように、別のアプローチを使用しました。これにより、実際にproject.json
に含まれるSemVerバージョン(1.0.0)が得られ、1.0.0.0ではなく、受け入れられた回答によって返されます。したがって、コードは次のようになります。
var runtimeVersion = typeof(Startup)
.GetTypeInfo()
.Assembly
.GetCustomAttribute<AssemblyInformationalVersionAttribute>()
.InformationalVersion;
正しいサフィックス付きのバージョンも返します。つまり、「2.0.1-dev01」のようなものです。
これは、.NET Core 2.0.5では私にとってはうまくいきました。
コード:
var assemblyVersion = System.Reflection.Assembly.GetEntryAssembly().GetCustomAttribute<System.Reflection..AssemblyInformationalVersionAttribute>().InformationalVersion;
Console.WriteLine(assemblyVersion);
myproject.csproj
<PropertyGroup>
<VersionPrefix>1.0.0.1</VersionPrefix>
<VersionSuffix>alpha</VersionSuffix>
</PropertyGroup>
出力
1.0.0.1-alpha
ここに到達して、ソリューションバージョンを通じてプロジェクトバージョンを管理しようとしている場合。
以下を含むDirectory.Build.props
ファイルをソリューションディレクトリに追加します。
<Project>
<PropertyGroup>
<VersionPrefix>1.2.3</VersionPrefix>
</PropertyGroup>
</Project>
'親ソリューションからバージョンを取得する'含まれるすべてのプロジェクトのVersionプロパティを設定します。
理想的ではありませんが、バージョンがロックされたマルチプロジェクトソリューションのバージョンを1か所で管理できます。