68

ASP.NET MVC 4 アプリケーションがあります。現在、「アプリケーション」タブのプロジェクト プロパティでアプリケーションのバージョンを設定しています。ここから、[Assembly Information...] ボタンをクリックします。そこで、「アセンブリ バージョン」フィールドに「1 0 0 *」と入力しました。

私の質問は、この値を自分の Web ページに表示するにはどうすればよいですか? 現在、私は次のことを試しています

@System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString()

残念ながら、常に「0.0.0.0」と出力されます。現実的には、1.0.0.xyz を印刷したいと思います。最後のビルドが発生した日時も出力したいと思います。しかし、私はそれを行う方法がわかりません。

私は何を間違っていますか?

4

7 に答える 7

127

このビューをレンダリングしたコントローラーが定義されているアセンブリのバージョン番号を出力するには、次のようにします。

@ViewContext.Controller.GetType().Assembly.GetName().Version

組立日については、次のとおりです。

@File.GetCreationTime(ViewContext.Controller.GetType().Assembly.Location)
于 2012-10-02T16:26:36.267 に答える
22

私は通常HtmlHelper、この目的のために拡張を行います。このようなもの:

public static class HtmlHelperExtensions
{
    public static IHtmlString AssemblyVersion(this HtmlHelper helper)
    {
        var version = Assembly.GetExecutingAssembly().GetName().Version.ToString();
        return MvcHtmlString.Create(version);
    }
}

そして、ビュー内よりも呼び出すだけです:

@Html.AssemblyVersion()
于 2012-10-02T19:54:56.273 に答える
5

デプロイ後の正しい変更日のための実用的なソリューション:

@File.GetLastWriteTime(@System.Reflection.Assembly.GetExecutingAssembly().Location)

MVC5でも使えます。

于 2017-04-07T10:57:14.270 に答える
4

AssemblyInfo.csこれにより、ASP.NET MVC ビューでの印刷用にファイルに概説されている現在のバージョン番号が出力されます。

@(typeof(MyController).Assembly.GetName().Version.ToString())

MyControllerもちろん、適切な MVC コントローラー名に置き換えます。

于 2012-10-02T16:27:41.137 に答える
1

アセンブリのバージョンはAssemblyFileVersionAttribute、 を使用して設定できます。これには特にアクセスする必要があります。

AssemblyFileVersionAttribute attr = typeof(MyController).Assembly.GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).OfType<AssemblyFileVersionAttribute>().FirstOrDefault();

if (attr != null)
{
    return attr.Version;
}

MvcDiagnostics Nuget パッケージを使用すると、これが簡単になります。

于 2012-10-02T16:25:44.723 に答える