【问题标题】:How to bulid the exe that behaves same in all machines如何构建在所有机器中行为相同的 exe
【发布时间】:2009-07-27 18:53:51
【问题描述】:

我面临的各种问题解释如下。

我创建了一个 c# 类库(Test.dll),使用它我可以枚举 sqlserver 的实例和数据库列表。我有 2 台机器 1 台开发机,2 台是测试机。

现在,当我在我的开发机器中测试应用程序时,它的行为正常。但是,当我将应用程序(exe 文件复制到)测试机时,它无法调用我在 Test.dll 中编写的接口的方法

当我在开发机器中调试应用程序时,tli 文件由调试器调用,我只是将包含我的源代码的文件夹共享给测试机器。

现在我正在通过不包含源代码的测试机调试应用程序。但恐怕对 test.dll 中的方法的函数调用失败了。我不知道发生了这种情况......

如何解决这个问题,以及如何让应用程序在所有机器上运行效果相同.....

【问题讨论】:

  • 如果这是关于 C#,为什么要标记为 C++?
  • COM服务器是C#,客户端是VC++。

标签: c++ visual-studio com


【解决方案1】:

可爱,

您的应用程序和 SQL Server 之间似乎缺少软件链接。

如果您正在编程以通过 Native/OLEDB/ODBC 驱动程序访问 SQL Server,则需要确保已安装这些驱动程序。这些驱动程序是 Microsoft 数据访问组件 (MDAC) 的一部分,现在是 v2.8 (http://www.microsoft.com/downloads/details.aspx?FamilyID=6c050fe3-c795-4b7d-b037-185d0506396c&displaylang=en)。

当您安装开发环境/SQL Server 工作站组件时,这些东西会自行安装。

【讨论】:

  • 我不会错过任何软件链接。
  • 可爱,我的意思是你需要这些驱动程序才能让你的软件工作。
【解决方案2】:

您需要在您的应用程序中实现错误处理 - 一些代码会以编程方式检查 COM 方法返回的错误代码,检索 IErrorInfo(如果有)并执行相关操作 - 向用户显示错误消息,或将其写入日志文件。

要使调试在所有机器上都以相同的方式进行,除了在要调试的每台机器上复制源代码外,您无能为力。

【讨论】:

    猜你喜欢
    • 2023-03-11
    • 2017-11-14
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多