在安装期间确定 .NET Core 版本(IzPack、BitRock、Install4J)

Determine .NET Core version during install (IzPack, BitRock, Install4J)

我正在为各种平台创建服务安装程序(Windows 和 Linux/Unix 开始)。 安装非常简单,只需 copy/unpack 一些文件到选择的路径,重写一些设置文本文件,复制服务并启动它。 (卸载过程相反)。 我遇到的一个问题是确定 .NET Core 版本。

对于 Windows,我使用 Inno Setup 通过执行命令行命令 (dotnet --version) 来完成,将结果保存到临时文件,将其读取到变量并删除临时文件.

我知道,类似的方法可能适用于 Linux 安装程序,但我想做得比这更干净一些。 我想使用免费的 IzPack,但我也在考虑获取 BitRock 或 Install4J,因此有关这些的建议可以帮助我做出决定。 付费的好像只支持判断.NET Framework版本,不支持.NET Core

谢谢

你可以在 izpack 动态变量中使用类似这样的东西:

<variable name="dotnet.version" executable="dotnet" type="process" ignorefailure="true">
  <arg>--version</arg>
  <filters>
    <regex regexp="... maybe filter the version from stdout by appropriate regex ..." />
  </filters>
</variable>

然后版本将存储在 属性 中,您可以根据需要对其进行评估或使用。

有关此主题的更多信息,请参见 izpack 文档 https://izpack.atlassian.net/wiki/spaces/IZPACK/pages/491552/Dynamic+Variables