web-dev-qa-db-ja.com

ASP.NET MVCコアアプリケーション(RC2)でプロジェクトバージョンを表示する

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)
18
vmg

このお知らせ のとおり、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を出力します。そして、その値を変更してアプリケーションを再起動(ビルド)すると、そこに新しいバージョンが表示されます。

20
poke

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使用の置き換え」セクションで指定されているとおり。

19
Luca

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」のようなものです。

12
Ilya Luzyanin

これは、.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
7
sabbour

ここに到達して、ソリューションバージョンを通じてプロジェクトバージョンを管理しようとしている場合。

以下を含むDirectory.Build.propsファイルをソリューションディレクトリに追加します。

<Project>
  <PropertyGroup>
    <VersionPrefix>1.2.3</VersionPrefix>
  </PropertyGroup>
</Project>

'親ソリューションからバージョンを取得する'含まれるすべてのプロジェクトのVersionプロパティを設定します。

理想的ではありませんが、バージョンがロックされたマルチプロジェクトソリューションのバージョンを1か所で管理できます。

1
saarrrr