获取我的C#应用程序版本?

获取我的C#应用程序版本?,c#,windows,version,C#,Windows,Version,我正在开发桌面应用程序。我已经创建了一个设置 我的申请。版本是1.0.0 我想获取桌面应用程序的当前版本,即1.0.0。我尝试过使用Application.ProductVersion,但它提供了我控件的版本。(我使用的是DevExpress控件15.2.7,因此它提供的当前版本为15.2.7) 如何获取已安装应用程序的当前版本?我想将其与已安装的版本进行比较,以便为我的产品提供“可用的新版本”功能。您要查找的信息位于AssemblyInfo.cs中 要在运行时访问其中写入的信息,您可以使用Sy

我正在开发桌面应用程序。我已经创建了一个设置

我的申请。版本是1.0.0

我想获取桌面应用程序的当前版本,即
1.0.0
。我尝试过使用
Application.ProductVersion
,但它提供了我控件的版本。(我使用的是
DevExpress控件
15.2.7,因此它提供的当前版本为
15.2.7


如何获取已安装应用程序的当前版本?我想将其与已安装的版本进行比较,以便为我的产品提供“可用的新版本”功能。

您要查找的信息位于AssemblyInfo.cs

要在运行时访问其中写入的信息,您可以使用
System.Reflection.Assembly

使用
System.Reflection.Assembly.getExecutionGassembly()
获取程序集(这一行代码在中),或使用
System.Reflection.Assembly.GetEntryAssembly()
获取项目开始时使用的程序集(很可能是您的应用程序)

在多项目解决方案中,这是需要记住的

string version = Assembly.GetExecutingAssembly().GetName().Version.ToString()
// returns 1.0.0.0
System.Reflection.Assembly executingAssembly = System.Reflection.Assembly.GetExecutingAssembly();
var fieVersionInfo = FileVersionInfo.GetVersionInfo(executingAssembly .Location);
var version = fieVersionInfo.FileVersion;
相应的组装信息.cs

相应的EXE属性


在使用InstallShield时可能很重要(请参见备注)

获取特定程序集的版本:

string version = Assembly.GetExecutingAssembly().GetName().Version.ToString()
// returns 1.0.0.0
System.Reflection.Assembly executingAssembly = System.Reflection.Assembly.GetExecutingAssembly();
var fieVersionInfo = FileVersionInfo.GetVersionInfo(executingAssembly .Location);
var version = fieVersionInfo.FileVersion;
private const string AssemblyName = "MyAssembly"; // Name of your assembly

public Version GetVersion()
{
    // Get all the assemblies currently loaded in the application domain.
    Assembly[] assemblies = Thread.GetDomain().GetAssemblies();

    for (int i = 0; i < assemblies.Length; i++)
    {
        if (string.Compare(assemblies[i].GetName().Name, AssemblyName) == 0)
        {
            return assemblies[i].GetName().Version;
        }
    }

    return Assembly.GetExecutingAssembly().GetName().Version; // return current version assembly or return null;
}
private const string AssemblyName=“MyAssembly”//程序集的名称
公共版本GetVersion()
{
//获取应用程序域中当前加载的所有程序集。
Assembly[]assemblies=Thread.GetDomain().GetAssemblies();
对于(int i=0;i
取决于应用程序的实现方式。基本上,目前的问题无法回答。@Leri它是由InstallShield Express Edition 2015创建的安装程序。它返回“15.2.7.0”,这是我的DevXPress组件版本。什么是可执行的?位置为您提供了什么?您的应用程序exe或其他文件的路径?以下是所有参数。(1) 程序集位置:C:\Program Files(x86)\MyApplication\MyApplication.exe。(2) 文件版本/产品版本:15.2.7.0请检查您的AssemblyInfo.cs。那里写了什么?如果这没有任何帮助,请尝试使用
GetEntryAssembly
而不是
getExecutionGassembly
我没有设置程序集信息。我正在使用第三方InstallShield创建安装程序。我已经设置了版本和所有内容,但没有在汇编中设置。我想InstallShield会成功的。无论如何,我已经改变了装配信息。它现在运转良好。如果我仍然理解错误,请告诉我。“我以为InstallShield会成功”-这是错误的假设,请参阅。