【问题标题】:Deploy BizTalk application msi (created with BTDF) via msiexec通过 msiexec 部署 BizTalk 应用程序 msi(使用 BTDF 创建)
【发布时间】:2018-01-26 16:24:42
【问题描述】:

我们正在为使用 BTDF 创建的 BizTalk MSI 设置部署自动化。

目前我们正在研究的方法是从我们的部署工具集中调用 msiexec。但是,我们需要将应用程序安装在与 MSI 设置建议不同的文件夹中。

BTSF WiX 默认安装到 C:-drive,而我们必须安装到 E:-drive。我已经尝试在 msiexec 调用中更改它,但是当传递 INSTALLDIR 或 TARGETDIR 时,它只会将 msiexec 帮助对话框扔到我的脸上。

所以我想我应该尝试看看 WiX,这样我们就可以将 MSI 构建为默认为 E:(如果可用),这最终会产生相同的最终结果,但 WiX 有点神秘在这一点上,我的理解似乎有很多“魔力”。

BTDF 默认使用下面的结构(主要是它的下部),我想我必须对 TARGETDIR 和/或 SourceDir 做一些事情。但我无法确定哪一部分只是某种可以设置的变量。

<Directory Id="TARGETDIR" Name="SourceDir">
  <?if $(var.CreateStartMenuShortcuts) ~= True?>
  <Directory Id="ProgramMenuFolder">
    <Directory Id="BizShortCuts" Name="$(var.ProductName) $(var.ProjectVersion)">
      <Directory Id="BizShortCutsTools" Name="Deployment Tools" />
    </Directory>
  </Directory>
  <?endif?>
  <Directory Id="ProgramFilesFolder" Name="ProgramFiles">
    <Directory Id="ProductDir" Name="$(var.ProductName)">
      <Directory Id="INSTALLDIR" Name="$(var.ProjectVersion)"/>
    </Directory>
  </Directory>
</Directory>

编辑 20180129 请注意,此问题发生在服务器环境中,我的登录用户的安全性受到限制。我们被允许使用 msi UI 运行 msi 安装程序(右键单击,自定义选项“以 [授权用户名] 运行”。

为了通过命令行完成此操作,我已在另一个帐户下作为 PS 终端启动,直到我添加 INSTALLDIR 参数为止。然后它只是显示 msiexec 帮助。

我怀疑这会有所不同,但 msiexec 的本地版本(有效)是 5.0.7601.23593,而服务器端(无效)是 5.0.9600.18333(即更新的)。

【问题讨论】:

  • 您确定在命令行中正确设置了 INSTALLDIR 属性吗?你的 msiexec.exe 命令行是什么?当您在值中设置带有空格的属性时,您必须在值周围使用引号; INSTALLDIR="E:\Product Name\Install Folder"
  • 所以,这适用于我的本地开发人员,但不适用于我们的测试服务器。这些机器之间的主要区别在于本地机器不运行服务器操作系统,在安全策略方面受到更多限制(显然),并且我需要以不同于登录用户的用户身份运行 msiexec。但是,如果安全是一个问题,我希望得到带有这种反馈的错误消息,而不是弹出帮助框,但也许这就是 msiexec 的工作原理?

标签: wix biztalk windows-installer installation-path btdf


【解决方案1】:

首先,升级到Deployment Framework for BizTalk v5.6 or newer.

其次,在你的 .btdfproj 中,添加 DefaultInstallDir:

<PropertyGroup>
  <!-- existing MSI properties -->
  <ProductUpgradeCode>GUID-HERE</ProductUpgradeCode>
  <!-- add DefaultInstallDir -->
  <DefaultInstallDir>E:\MyCustomPath</DefaultInstallDir>
</PropertyGroup>

MSI 现在默认为 E:\MyCustomPath。

【讨论】:

  • 谢谢,这是解决问题的好选择,尽管我仍然对 msiexec INSTALLDIR 参数问题的原因/解决方案感到好奇。
  • 我确实发现,当您将 DefaultInstallDir 选项用于另一个驱动器时,并且该驱动器在目标计算机上不存在时,msiexec 失败并显示消息“文件夹路径 [...]包含无效字符'。虽然这有点烦人,但它无意中阻止任何人将 BizTalk 应用程序安装到不应该运行它的机器上,因为本地工作站通常没有 E:-drive。
猜你喜欢
  • 2021-07-08
  • 2011-03-14
  • 1970-01-01
  • 1970-01-01
  • 2013-02-24
  • 1970-01-01
  • 1970-01-01
  • 2011-04-10
  • 1970-01-01
相关资源
最近更新 更多