在安装期间确定 .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
我正在为各种平台创建服务安装程序(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