C# VisualStudio获取自动增量产品版本

C# VisualStudio获取自动增量产品版本,c#,visual-studio,C#,Visual Studio,我想向表单中添加产品版本。[assembly:AssemblyVersion(“1.0.*)] 这就是我找到的解决方案,它将起作用。但版本将类似于“1.0.6262.26540”。 我是否可以更改规则,或者是否可以获取Visual Studio以编程方式生成的发布版本? 您可以使用ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString()。但是,只有在运行ClickOnce publisher安装程序安装的程序版本时,此操作

我想向表单中添加产品版本。
[assembly:AssemblyVersion(“1.0.*)]

这就是我找到的解决方案,它将起作用。但版本将类似于“1.0.6262.26540”。 我是否可以更改规则,或者是否可以获取Visual Studio以编程方式生成的发布版本?

您可以使用
ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString()
。但是,只有在运行ClickOnce publisher安装程序安装的程序版本时,此操作才有效(
ApplicationDeployment.IsNetworkDeployed
返回
true

当您直接启动编译后的程序集时(例如在调试期间),当您尝试访问
CurrentDeployment
属性时,将获得
InvalidDeploymentException
。为了防止出现这种情况,您可以使用以下方法:

string CurrentVersion
{
    get
    {
        return ApplicationDeployment.IsNetworkDeployed
            ? ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString()
            : "1.0.0.0"; // Fallback version string, or retrieve from assembly as in your question
    }
}

如果您不使用ClickOnce发布功能发布您的软件,我不确定您是否可以访问“发布版本”

?这不是我想要的。Application.ProductVersion将具有相同的输出:1.0.6262.26540。我希望版本为1.0.0.12您可以查看AssemblyInfo.cs并检查版本的内容吗?就像我在帖子中所说的:[assembly:AssemblyVersion(“1.0.*)]啊,对。在这种情况下:“默认版本号每天递增。默认版本号是随机的。”您是否尝试过将“1.0.*”更改为“1.0.0.12”?然后重新发布并检查结果?我正在使用ClickOnce发布者:D,但我找不到ApplicationDeployment,我必须添加哪个命名空间?@itskajo
string CurrentVersion
{
    get
    {
        return ApplicationDeployment.IsNetworkDeployed
            ? ApplicationDeployment.CurrentDeployment.CurrentVersion.ToString()
            : "1.0.0.0"; // Fallback version string, or retrieve from assembly as in your question
    }
}