WiX 安装 SQLServerSpatial.dll 和 SQL Server 2008 R2?

Posted

技术标签:

【中文标题】WiX 安装 SQLServerSpatial.dll 和 SQL Server 2008 R2?【英文标题】:WiX installing SQLServerSpatial.dll and SQL Server 2008 R2? 【发布时间】:2012-03-20 17:31:30 【问题描述】:

我们正在尝试更新我们的 WiX 安装程序以安装 SQL Server 2008 R2。 Regular 2008 似乎可以在大多数机器上正常安装,但 R2 安装似乎无法安装 SQLSysClrTypes - 所以我们遇到了一个错误,即缺少名为 SQLServerSpatial.dll 的 dll。

有没有办法让 SQL 安装程序正确安装它?我在网上找到了一些关于这个问题的讨论,但没有解决方案,除了在 SQL Server 之后手动安装 SQLSysClrTypes.msi。

我们希望安装是静默的,并且需要最少的用户交互。

我们使用的是 WiX 3.5 和 VS2010。

编辑

进一步的阅读和思考使我了解到SQL 2008 SP1 也没有安装SQLServerSpatial.dll,是我们代码的更改导致了现在的要求。所以我的问题变得更简单了:

我可以将 SqlServer 安装配置为包含/安装 SqlServerSpatial 吗?

我可以使用 WiX 安装 SQLSysClrTypes.msi(我需要 package.xml 和 product.xml)吗?有人做过吗?

【问题讨论】:

【参考方案1】:

虽然我不确定 SQL Server 的更改以及缺少 SqlServerSpatial.dll 的原因,但我可以回答有关使用引导程序安装先决条件的问题。

我可以使用 WiX 安装 SQLSysClrTypes.msi(我需要 package.xml 和 product.xml)吗?有人做过吗?

听起来您正在使用 Visual Studio 引导程序。您可以使用bootstrapper manifest generator tool 创建bootstrapper manifest(package.xml 和product.xml),这样您就可以像其他prereqs (for example, the .NET framework) 一样创建引导程序。

当然,如果您愿意升级到 WiX 3.6(仍处于测试阶段但相当稳定),您可以使用名为 Burn 的新引导程序功能来创建 package bundles 以便 chain your packages together。

【讨论】:

感谢您的回答。我想我快到了。我可以在目标 x64 机器上安装 SQLSysClrTypes,但我的应用程序找不到 dll。应用程序是 x86 - 我需要安装 x64 SQLSysClrTypes 还是 x86 或两者都安装? 可能有几种方法可以解决这个问题,但我不确定哪种方法最好。如果应用程序面向 x86 并且有 SQLSysClrTypes 的 x86 版本,那么也许您应该安装它。或者,如果您的应用程序依赖于 x64 版本,也许您应该构建一个针对 x64 的应用程序版本。或者在您的应用程序中,当安装在 64 位计算机上时,您可以对代码进行调整以查找 dll 的正确位置。就像我说的,不确定你应该如何处理它,我不想让你走错路。 现在似乎可以工作了。一个技巧是,在安装 sqlsysclrtypes 后机器似乎需要重新启动(但我没有在任何文档中看到这一点)。

以上是关于WiX 安装 SQLServerSpatial.dll 和 SQL Server 2008 R2?的主要内容,如果未能解决你的问题,请参考以下文章

从 Visual Studio 过渡到 Wix 安装程序

如何使用 wix 安装程序添加公司名称

Wix:在 Wix 之外运行命令时,运行外部 InstallShield 安装程序失败,退出代码为 -3

如何实现 WiX 安装程序升级?

WiX - 安装后启动应用程序

Wix 预安装要求