【问题标题】:Getting NSIS File Version with C#使用 C# 获取 NSIS 文件版本
【发布时间】:2013-05-13 21:27:01
【问题描述】:

我使用 NSIS 编写了一个安装程序脚本,并通过 VIProductVersionVIAddVersionKey 命令添加了版本信息。当我查看编译文件的属性时,版本信息如我所愿。

我的问题是当我尝试通过 C# 命令FileVersionInfo.GetVersionInfo(fileName).FileVersion 获取版本信息时,它返回一个空字符串。

这是一种快速复制的方法:

NSIS 脚本

!include LogicLib.nsh
!include FileFunc.nsh

!define PRODUCT_NAME "Installer"
!define PRODUCT_VERSION "1.0.0.2"

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"

VIProductVersion "${PRODUCT_VERSION}"
VIAddVersionKey ProductVersion "${PRODUCT_VERSION}"

OutFile "Setup.exe"

Section "Installer"
SectionEnd

C# 代码

class Program
{
    static void Main(string[] args)
    {
        FileVersionInfo fvi = FileVersionInfo.GetVersionInfo("Setup.exe");

        if (fvi != null)
        {
            Console.WriteLine(string.Format("File Version: {0}", fvi.FileVersion));
        }
        else
        {
            Console.WriteLine("Could not load file version info");
        }

        Console.WriteLine("Press any key to continue...");

        Console.Read();
    }
}

这给出了以下输出:

File Version: 
Press any key to continue...

我需要什么才能将FileVersion 读取为1.0.0.2

【问题讨论】:

    标签: c# nsis fileversioninfo


    【解决方案1】:

    我发现我做错了什么。尽管它在属性对话框中看起来是正确的,但我在 VIAddVersionKey 中使用了错误的值。要让它正确读取,您应该使用VIAddVersionKey FileVersion "${PRODUCT_VERSION}"

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多