我们正在为使用BTDF创建的BizTalk MSI设置部署自动化。
目前,我们正在研究的方法是从部署工具集调用msiexec。但是,我们需要将应用程序安装在与MSI设置的不同文件夹中。
WiX默认为C:-驱动器,而我们必须安装到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安装程序(右击,自定义选项‘运行作为授权用户名’,与msi UI。
为了通过命令行完成这一任务,我在另一个帐户下启动了PS终端,直到添加INSTALLDIR参数为止。然后简单地显示msiexec帮助。
我怀疑这有什么不同,但是本地版本的msiexec (它可以工作)是5.0.7601.23593,而serverside (它不工作)是5.0.9600.18333 (也就是最近的版本)。
发布于 2018-01-28 05:59:46
首先,升级到BizTalk v5.6或更高版本的部署框架。
其次,在.btdfproj中添加DefaultInstallDir:
<PropertyGroup>
<!-- existing MSI properties -->
<ProductUpgradeCode>GUID-HERE</ProductUpgradeCode>
<!-- add DefaultInstallDir -->
<DefaultInstallDir>E:\MyCustomPath</DefaultInstallDir>
</PropertyGroup>MSI现在将默认为E:\MyCustomPath。
https://stackoverflow.com/questions/48465432
复制相似问题