1

我们的业务需求是在许多客户端计算机上安装和配置 Oracle 客户端软件,这是我们所有使用 ODBC 访问本机 Oracle 驱动程序的自定义企业 Excel 和 MS Access 文档的先决条件。

所以这就是我希望 WiX 在 Visual Studio 2010 中为我做的事情:

  1. 使用引导程序将多个包链接在一起。
  2. 链中的最后一个包将运行一个名为 ConfigOracleClient.msi 的自定义 MSI。
  3. ConfigOracleClient.msi 运行一个自定义操作,该操作检查机器上的 Oracle 客户端,并确定 Oracle Home 所在的路径。
  4. 使用学习到的路径来安装一些指向正确驱动程序的自定义 DSN。
  5. 将名为 TNSNAMES.ORA 的文件安装到正确的路径中。

在VS2010中,我在我的解决方案中做了三个项目:

  1. 引导程序 (InstallPrerequisites.exe)
  2. ConfigOracleClient.msi,其中包含 OdbcDsns.wxi 和 TNSNames.ORA 文本文件
  3. OracleCustomAction.CA.dll

将自定义操作学习的路径传递回 ConfigOracleClient.msi 以要求它安装 DSN 和 TNSNames.ORA 的操作对我来说太难了。

4

1 回答 1

1

首先,您需要确保 ConfigOracleClient.msi 中包含您的文件(TNSNAMES.ORA 和 DSN)的文件夹使用公共安装程序属性(其名称中没有小写字母)作为其 ID。

然后,您可以使用这些自定义操作之一在安装期间更改属性值:

  1. 更改在 CostFinalize 之前安排的目录属性值的自定义操作
  2. 更改目录路径的类型 35 自定义操作(应安排在 CostFinalize 之后)

例如:

<CustomAction Id="ChangeDir" Directory="INSTALLFOLDER" Value="SomeValueorPropertyhere]"/>

“SomeValueorPropertyhere”是您在自定义操作中确定的内容。

2.在 InstallExecution 阶段调度操作(必须在 CostFinalize 步骤之后):

<Custom Action="ChangeDir" After="CostFinalize"></Custom>

另外请确保您当前用于确定 Oracel Home 路径的自定义操作在自定义操作“ChangeDir”之前执行。

于 2013-10-11T17:58:25.683 回答