我想顯示我的桌面應用程序的發佈版本。我試圖用這段代碼:如何獲取發佈版本?
_appVersion.Content = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
問題是我沒有得到我的項目屬性中的發佈版本。下面是它的截圖:
但我正在逐漸3.0.0.12546
。有人知道問題在哪裏嗎?
我想顯示我的桌面應用程序的發佈版本。我試圖用這段代碼:如何獲取發佈版本?
_appVersion.Content = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
問題是我沒有得到我的項目屬性中的發佈版本。下面是它的截圖:
但我正在逐漸3.0.0.12546
。有人知道問題在哪裏嗎?
我也有這個問題,發現AssemblyInfo.cs
設置的版本號是用一個集Properties
干擾:
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
我通常評論的線條勾勒出的AssemblyInfo
和替換他們與
[assembly: AssemblyVersion("1.0.*")]
檢查這些值是否是hard-co登入您的AssemblyInfo
檔案。
有關自動版本控制的有趣討論,請參閱this SO question。在檢查AssemblyInfo.cs
時,確保您的自動增量(*
- 如果您正在使用它)僅針對AssemblyVersion
而不是AssemblyFileVersion
。
當調試程序,你可以檢查組件的性能在
\bin\Release\app.publish
下Details
選項卡,檢查版本號。這是否與您在VS中指定的任何設置相匹配?
我們可以創建一個屬性,它將返回版本信息 如下所述,我們可以使用該屬性。
public string VersionLabel
{
get
{
if (System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed)
{
Version ver = System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion;
return string.Format("Product Name: {4}, Version: {0}.{1}.{2}.{3}", ver.Major, ver.Minor, ver.Build, ver.Revision, Assembly.GetEntryAssembly().GetName().Name);
}
else
{
var ver = Assembly.GetExecutingAssembly().GetName().Version;
return string.Format("Product Name: {4}, Version: {0}.{1}.{2}.{3}", ver.Major, ver.Minor, ver.Build, ver.Revision, Assembly.GetEntryAssembly().GetName().Name);
}
}
}
System.Reflection.Assembly.GetExecutingAssembly().GetName().Version;
將讓你存在於AssemblyInfo.cs文件,以獲得發佈您在發佈對話框中設置版本的程序集的版本,你應該使用
System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion
但是請注意,你有要添加對System.Deployment的引用,並且只有在通過右鍵單擊項目文件發佈應用程序並單擊發布後,它才能工作,每次發佈時,它都會增加修訂版本。
如果你試圖調用調試模式上面一行將無法正常工作,並會拋出一個異常,那麼您可以使用下面的代碼:
try
{
return System.Deployment.Application.ApplicationDeployment.CurrentDeployment.CurrentVersion;
}
catch(Exception ex)
{
return Assembly.GetExecutingAssembly().GetName().Version;
}
使用C#6.0中Lambda表達式
private string GetVersion => ApplicationDeployment.IsNetworkDeployed ? $"Version: {ApplicationDeployment.CurrentDeployment.CurrentVersion}" : $"Version: {Application.ProductVersion}";
你在檢查調試模式? – Sajeetharan
Nop,在發佈模式 – IrApp