我正在開發一個庫,試圖獲取使用它的應用程序的版本號。從庫中獲取應用程序的版本號
在我的測試應用中,當LIB正在讀取使用的版本號:
Assembly.GetExecutingAssembly().FullName;
我得到的lib,而不是主體工程的版本號。
有沒有簡單的方法來找到主應用程序的版本號,而不是我的庫?
謝謝。
我正在開發一個庫,試圖獲取使用它的應用程序的版本號。從庫中獲取應用程序的版本號
在我的測試應用中,當LIB正在讀取使用的版本號:
Assembly.GetExecutingAssembly().FullName;
我得到的lib,而不是主體工程的版本號。
有沒有簡單的方法來找到主應用程序的版本號,而不是我的庫?
謝謝。
您可以使用Application.Current
訪問啓動應用程序的應用實例:
Application.Current.GetType().FullName
話雖如此,我不認爲有一個適用於應用程序作爲一個整體的版本號。爲此,您需要打開WMAppManifest.xml
文件並從中讀取版本。您可以使用獲得訪問清單文件:
var manifestUri = new Uri("WMAppManifest.xml", UriKind.Relative);
Stream manifestStream = Application.GetResourceStream(manifestUri);
Application.Current.GetType()。Assembly.FullName的作用像一個魅力:)謝謝。 – 2012-01-10 09:08:27
Application.Current.GetType()。Assembly.FullName實際上在wp8中不起作用 – 2014-08-09 21:26:42
Assembly.GetEntryAssemlby().FullName;
假設這是在WP7上支持的。如果不是,請嘗試:
typeof(sometype).Assembly.FullName;
在您的主模塊的其中一種類型上。
謝謝。但是我不能從生產的主要應用程序中知道一種類型。所以這種方法不夠。不幸的是,GetEntryAssembly()在Windows Phone 7上不起作用。 – 2012-01-09 18:13:48
要獲取的版本號(1.2.0.0),使用下面的代碼:
string version = XDocument.Load("WMAppManifest.xml").Root.Element("App").Attribute("Version").Value;
很適合從WMAppManifest.xml獲取值。謝謝! – Harri 2013-04-26 11:57:22
這絕對是正確的答案。謝謝! – 2014-08-09 21:29:35
參見:http://stackoverflow.com/ questions/14224032/getting-main-assembly-version-number – holmis83 2015-01-20 13:27:15