2

ASP.NET Web アプリケーション/サイトと統合できるキャッシュ無効化コードをライブラリに実装したいと考えています。これは、URL の末尾にバージョン文字列を追加することで実装されます。キャッシュ無効化のために提供したい既定のバージョン プロバイダーは、ホスト Web サイトのアセンブリ バージョンを使用します。

現在、これは基本的に、このバージョン番号を抽出する方法です。

HttpContext.Current
           .ApplicationInstance
           .GetType()
           .Assembly
           .GetName()
           .Version
           .ToString()

残念ながら、少なくとも私のサンプル テスト サイトでは、アプリケーション インスタンスは生成されたアセンブリです (新しいアセンブリにコンパイルされるAssemblyためだと思います)。global.asax現在実行中のアセンブリに関係なく、Web アプリケーション アセンブリ名の取得で、実際のサイト アセンブリのタイプを取得するために使用できると SLaks は述べていますが、サイトがファイルをBaseType使用していない場合は、BCL で何かが得られると思います。global.asaxBaseType

ASP.NET Web アプリケーションのアセンブリ バージョン番号を抽出する信頼できる方法はありますか? また、アプリケーション開発者が追加のビルド手順を必要としない、ビルドごとに固有のトークンを生成するための代替アプローチも考えています。

4

1 に答える 1

2

私の戦略は、カスタム型の中から型を選択し、この型のアセンブリのバージョン番号についてランタイムに問い合わせることです。

 typeof( SomeKnownType ).Assembly.GetName().Version
于 2012-08-12T18:17:50.083 に答える