使用 创建安装程序(例如.msi
)时jpackage
,有什么方法可以更新PATH
环境变量吗?这对于控制台实用程序非常重要。
在文档中没有看到任何关于它的jpackage
内容。也许有一天它会得到支持......但是,与此同时,有什么解决方法吗?(我的意思是,除了要求用户自己手动更新PATH
......)
使用 创建安装程序(例如.msi
)时jpackage
,有什么方法可以更新PATH
环境变量吗?这对于控制台实用程序非常重要。
在文档中没有看到任何关于它的jpackage
内容。也许有一天它会得到支持......但是,与此同时,有什么解决方法吗?(我的意思是,除了要求用户自己手动更新PATH
......)
是的。
Jpackage 提供了进一步自定义使用WiX构建的安装程序包的能力。
您必须使用--resource-dir
它,如Packaging Tool User's Guide中所述。
使用以下命令:
jpackage --input my_app [...] --temp "some/dir"
您将生成以下文件结构:
\some\dir
\config
my_app.ico
my_app.properties
main.wxs
MsiInstallerStrings_en.wxl
MsiInstallerStrings_ja.wxl
MsiInstallerStrings_zh.wxl
overrides.wxi
\images
\wixobj
将main.wxs
文件复制到选择的目录中,例如my_resource_dir
.
您不需要其他任何东西,因此您可以安全地删除它以及生成的安装包。
换行my_resource_dir/main.wxs
:
<Feature Id="DefaultFeature" Title="!(loc.MainFeatureTitle)" Level="1">
<ComponentGroupRef Id="Shortcuts"/>
<ComponentGroupRef Id="Files"/>
<ComponentGroupRef Id="FileAssociations"/>
</Feature>
至:
<Feature Id="DefaultFeature" Title="!(loc.MainFeatureTitle)" Level="1">
<ComponentGroupRef Id="Shortcuts"/>
<ComponentGroupRef Id="Files"/>
<ComponentGroupRef Id="FileAssociations"/>
<Component Id="pathEnvironmentVariable" Guid="{YOUR_GUID}" KeyPath="yes" Directory="TARGETDIR">
<Environment Id="MyPathVariable" Name="Path" Value="[INSTALLDIR]" Action="set" System="no" Permanent="no" Part="last" Separator=";" />
</Component>
</Feature>
确保替换为使用生成器工具YOUR_GUID
生成的 GUID 。例如:[...] Guid="{607ea423-79e0-4866-9ed7-62005b88d225}"
运行以下命令:
jpackage --input my_app [...] --resource-dir "my_resource_dir" --verbose
在日志输出中,您应该会看到类似以下内容:
[...] Using custom main.wxs file [...]
现在构建的安装程序将您的 INSTALLDIR 附加到安装路径并在卸载期间将其删除。