2

我最近继承了一个 C# Winforms 应用程序,它通过 QBFC 接口与 Quickbooks 进行通信。该应用程序包含对 COM 服务器 Interop.QBFC7.dll 的引用。该应用程序在我们的测试环境和我们客户的几个环境中运行良好。虽然,昨天当我尝试在新客户的系统上安装它时,我继续收到以下错误:

无法加载文件或程序集“Interop.QBFC,版本=8.0.0.87,文化=中性,PublicKeyToken=...”或其依赖项之一。该系统找不到指定的文件。

我知道我们有几个客户在不同版本的 Quickbooks(即 Quickbooks Pro、Premier 和 Enterprise 2008 和 Enterprise 11.0 之间)上运行这个应用程序。据我所知,这是我们尝试部署具有 Enterprise 12.0 的应用程序的第一个客户。

我尝试了以下方法来解决问题,但没有成功:

1) 从 Intuit 开发人员网络站点安装 QBFC7_Installer
2) 从 Intuit 开发人员网络站点安装 Quickbooks SDK 10 安装程序
3) 验证文件系统上是否存在 Interop.QBFC7.dll 文件。
4) 尝试通过命令提示符手动注册 COM 对象 Interop.QBFC7.dll:regsvr32 Interop.QBFC7.dll(同样失败,windows 返回错误,指出找不到对象)。

是否有人对我可以尝试解决此问题的其他事项有任何建议或反馈?我在他们站点上运行不同操作系统(即 Windows Server 2008、Windows 7 和 Windows Vista)的 3 台不同机器上遇到相同的错误?我还尝试在 x86 和 64 位配置中进行编译,但均无济于事。

提前感谢您的帮助。

4

1 回答 1

0

首先,您应该只针对x86构建。如果您以Any CPU或为目标,QuickBooks SDK 将无法工作x64。但是,您的主要问题是您正在寻找错误的 QBFC 版本。请注意错误消息上的版本标记:

无法加载文件或程序集“Interop.QBFC, Version=8.0.0.87 , Culture=neutral, PublicKeyToken=...”或其依赖项之一。该系统找不到指定的文件

这是 QBFC8,而不是 QBFC7。因此,您应该能够使用 QBFC8 安装程序解决问题。

QuickBooks 的版本应该没有什么不同,因为 QBFC 8(或 7,就此而言)将适用于 2008 和 Enterprise 11 或 12。

您应该考虑使用安装项目来安装您的应用程序,以避免将来出现此问题。安装项目应自动检测 QBFC 依赖项。一旦您看到这种情况发生,请转到安装项目的 SearchPath 属性并从安装在您机器上的 SDK 添加 MergeModule 目录。完成此操作后,您应该会看到 QBFC 和 Xerces 合并模块作为依赖项自动添加到您的项目中。当然,您还需要将代码更新到更新版本的 QBFC,但无论如何这可能是个好主意。

于 2012-04-13T20:04:11.340 回答