2012-01-09 20 views
1

私はそれを使用するアプリケーションのバージョン番号を取得しようとするライブラリを開発しています。ライブラリ内からアプリケーションのバージョン番号を取得する

libには、使用してバージョン番号を読んでいる私のテストアプリケーションでは、:

Assembly.GetExecutingAssembly().FullName; 

私はLIBのバージョン番号ではなく、メインプロジェクトを取得しています。

私のライブラリではなく、メインアプリケーションのバージョン番号を簡単に見つける方法はありますか?

ありがとうございました。

+0

も参照してください:http://stackoverflow.com/ question/14224032/getting-main-assembly-version-number – holmis83

答えて

7

あなたは、アプリケーションを起動したアプリケーションインスタンスにアクセスするためにApplication.Currentを使用することができます。

Application.Current.GetType().FullName 

は、私は、アプリケーション全体に適用されるバージョン番号を持っているとは思わない、と述べました。そのためにはWMAppManifest.xmlファイルを開き、そのバージョンを読む必要があります。あなたが使用してマニフェストファイルへのアクセスを得ることができます。

var manifestUri = new Uri("WMAppManifest.xml", UriKind.Relative); 
Stream manifestStream = Application.GetResourceStream(manifestUri); 
+0

Application.Current.GetType()。Assembly.FullNameはチャームのように機能します:)ありがとう。 –

+0

Application.Current.GetType()。Assembly.FullNameが実際にwp8で動作していません。 –

1
Assembly.GetEntryAssemlby().FullName; 

これがWP7でサポートされていることを前提とします。そうでない場合は、

typeof(sometype).Assembly.FullName; 

のいずれかのメインモジュールから入力してください。

+0

ありがとうございました。しかし、私は生産の主なアプリケーションからタイプを知ることができません。したがって、この方法は十分ではありません。残念なことにGetEntryAssembly()はWindows Phone 7では動作しません。 –

8

はバージョン番号(1.2.0.0)、次のコードを使用を取得するには:

string version = XDocument.Load("WMAppManifest.xml").Root.Element("App").Attribute("Version").Value; 
+0

WMAppManifest.xmlから値を取得するのにうまく動作します。ありがとう! – Harri

+0

これは間違いなく正解です。ありがとう! –

関連する問題