簡體   English   中英

如何獲得發布版本?

[英]how to get publish version?

我想展示我的桌面應用程序的發布版本。 我正在嘗試使用此代碼:

_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.*")]

檢查這些值是否已硬編碼到AssemblyInfo文件中。

有關自動版本控制的有趣討論,請參閱此SO問題 檢查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}";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM