从库中获取应用程序的版本号

Mat*_*ger 1 .net c# assemblies version windows-phone-7

我正在开发一个库,试图获取使用它的应用程序的版本号.

在我的测试应用程序中,当lib使用以下内容读取版本号时:

Assembly.GetExecutingAssembly().FullName;
Run Code Online (Sandbox Code Playgroud)

我得到的是lib的版本号,而不是主项目.

有没有一种简单的方法来查找主应用程序的版本号,而不是我的库中的版本号?

谢谢.

Cla*_*sen 8

要获取版本号(1.2.0.0),请使用以下代码:

string version = XDocument.Load("WMAppManifest.xml").Root.Element("App").Attribute("Version").Value;
Run Code Online (Sandbox Code Playgroud)


Ric*_*lay 7

您可以使用它Application.Current来访问启动应用程序的应用程序实例:

Application.Current.GetType().FullName
Run Code Online (Sandbox Code Playgroud)

话虽如此,我认为没有适用于整个应用程序的版本号.为此,您需要打开该WMAppManifest.xml文件并从中读取该版本.您可以使用以下方式访问清单文件:

var manifestUri = new Uri("WMAppManifest.xml", UriKind.Relative);
Stream manifestStream = Application.GetResourceStream(manifestUri);
Run Code Online (Sandbox Code Playgroud)