【问题标题】:Pass environment variable to INSTALLDIR in msi将环境变量传递给 msi 中的 INSTALLDIR
【发布时间】:2018-09-08 05:41:45
【问题描述】:

我正在尝试编写 PowerShell DSC 配置并具有以下代码:

Package RapidCRC
{
    Ensure = "Present"
    Path  = "C:\Repo\RapidCRC.Unicode.v0.3.27.x64\RapidCRC-Setup-0.3.27-x64.msi"
    Name = "RapidCRC (x64) 0.3.27"
    ProductId = "{27A6AB13-B66B-4AB8-BDA1-313477475F6A}"
    Arguments = 'INSTALLDIR="C:\Program Files\Utilities\RapidCRC.Unicode" ALLUSERS=2 ARPSYSTEMCOMPONENT=0'
}

我想将 C:\Program Files 作为环境变量传递。我尝试了以下方法:

Arguments = 'INSTALLDIR="%ProgramFiles%\Utilities\RapidCRC.Unicode" ALLUSERS=2 ARPSYSTEMCOMPONENT=0'

Arguments = 'INSTALLDIR="[ProgramFiles64Folder]Utilities\RapidCRC.Unicode" ALLUSERS=2 ARPSYSTEMCOMPONENT=0'

但它们不起作用。任何帮助表示赞赏。

【问题讨论】:

  • 您的 DSC 设置是什么?推拉?您使用的是 x86 还是 x64 操作系统?
  • 这是一个推送设置。所有系统(我推出的系统和接收配置的系统)都是 x64。

标签: windows-installer dsc


【解决方案1】:

您正在查看 PowerShell 脚本。因此,您可以在 DSC 配置脚本中使用 $env:ProgramFiles

Package RapidCRC
{
    Ensure = "Present"
    Path  = "C:\Repo\RapidCRC.Unicode.v0.3.27.x64\RapidCRC-Setup-0.3.27-x64.msi"
    Name = "RapidCRC (x64) 0.3.27"
    ProductId = "{27A6AB13-B66B-4AB8-BDA1-313477475F6A}"
    Arguments = "INSTALLDIR=`"$($env:ProgramFiles)\Utilities\RapidCRC.Unicode`" ALLUSERS=2 ARPSYSTEMCOMPONENT=0"
}

旁注:请注意Argument 参数中使用的反引号

【讨论】:

    猜你喜欢
    • 2013-12-29
    • 2021-09-05
    • 2020-03-27
    • 2017-03-30
    • 2018-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    相关资源
    最近更新 更多