通过 msiexec 部署 BizTalk 应用程序 msi(使用 BTDF 创建)
Deploy BizTalk application msi (created with BTDF) via msiexec
我们正在为使用 BTDF 创建的 BizTalk MSI 设置部署自动化。
目前我们正在研究的方法是从我们的部署工具集中调用 msiexec。但是,我们需要将应用程序安装在不同于 MSI 设置建议的文件夹中。
BTSF WiX默认安装到C:盘,而我们必须安装到E:盘。我曾尝试在 msiexec 调用中更改它,但在传递 INSTALLDIR 或 TARGETDIR 时,它只会在我面前抛出 msiexec 帮助对话框。
所以我想我应该尝试看看 WiX,这样我们就可以将 MSI 构建为默认为 E:(如果可用),这最终会产生相同的最终结果,但 WiX 有点对我来说是个谜,目前我的理解似乎有很多 'magic'。
BTDF 默认使用以下结构(主要是它的下部),我想我必须对 TARGETDIR and/or 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 安装程序(右键单击,自定义选项 'Run as [authorized user name]',使用 msi UI。
为了通过命令行完成此操作,我在另一个帐户下作为 PS 终端启动,直到我添加 INSTALLDIR 参数为止。然后它只显示 msiexec 帮助。
我怀疑这有什么不同,但 msiexec 的本地版本(有效)是 5.0.7601.23593,服务器端(无效)是 5.0.9600.18333(即更新)。
首先,升级到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。
我们正在为使用 BTDF 创建的 BizTalk MSI 设置部署自动化。
目前我们正在研究的方法是从我们的部署工具集中调用 msiexec。但是,我们需要将应用程序安装在不同于 MSI 设置建议的文件夹中。
BTSF WiX默认安装到C:盘,而我们必须安装到E:盘。我曾尝试在 msiexec 调用中更改它,但在传递 INSTALLDIR 或 TARGETDIR 时,它只会在我面前抛出 msiexec 帮助对话框。
所以我想我应该尝试看看 WiX,这样我们就可以将 MSI 构建为默认为 E:(如果可用),这最终会产生相同的最终结果,但 WiX 有点对我来说是个谜,目前我的理解似乎有很多 'magic'。
BTDF 默认使用以下结构(主要是它的下部),我想我必须对 TARGETDIR and/or 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 安装程序(右键单击,自定义选项 'Run as [authorized user name]',使用 msi UI。
为了通过命令行完成此操作,我在另一个帐户下作为 PS 终端启动,直到我添加 INSTALLDIR 参数为止。然后它只显示 msiexec 帮助。
我怀疑这有什么不同,但 msiexec 的本地版本(有效)是 5.0.7601.23593,服务器端(无效)是 5.0.9600.18333(即更新)。
首先,升级到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。