通过msiexec部署BizTalk应用程序msi(使用BTDF创建)

时间:2018-01-26 16:24:42

标签: wix biztalk msiexec installation-path btdf

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

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

BTSF WiX默认为C:-drive,而我们必须安装到E:驱动器。我尝试在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安装程序(右键单击,自定义选项&#39;以[授权用户名]&#39;运行,使用msi UI。

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

我怀疑它有所不同,但msiexec(可行的)的本地版本是5.0.7601.23593,而serverside(它不起作用)是5.0.9600.18333(即最近的版本)。

1 个答案:

答案 0 :(得分:0)

首先,升级到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。