【问题标题】:How to Deploy c# project with all dependencies in visual studio 2012如何在 Visual Studio 2012 中部署具有所有依赖项的 c# 项目
【发布时间】:2013-11-10 16:52:14
【问题描述】:

我在 Visual Studio 2012 中创建了一个小型 c# 程序,我使用了两个外部 dll 库。当我构建要发布的项目时,它会创建带有一堆其他文件的发布文件,包括我使用的外部 dll。它可以在我的计算机上运行,​​但如果我将整个发布文件复制到另一台计算机,它只会给我一条错误消息并退出。 程序还需要运行什么?

错误信息是:

应用程序无法正确启动(0x000007b)。单击“确定”关闭应用程序。

【问题讨论】:

  • 错误信息是什么意思
  • 视情况而定。显示错误消息可能会有所帮助。
  • 错误信息是什么?
  • 我已将错误信息添加到帖子中
  • 在代码中加入try-catch,显示异常详情。我想,您使用与另一台计算机不同的目标平台创建项目(例如 .NET 4.5 而不是 .NET 2.0),并且应用程序希望在 2.0 平台上有 4.5 个库

标签: c# .net visual-studio visual-studio-2012


【解决方案1】:

我怀疑您的错误代码实际上是 0xC000007B (STATUS_INVALID_IMAGE_FORMAT),而不是 0x0000007B (INACCESSIBLE_BOOT_DEVICE)。当您的应用程序遇到 DLL 的 32 位和 64 位版本之间的运行时混淆时,前者很常见。

可能发生的情况是您的应用程序(比如 32 位)依赖于某个 DLL,称为 FOO.DLL。在本地计算机上运行时,您将在路径上选择正确版本的 32 位版本的 FOO.DLL。但是,当您部署到另一台机器时,您会从系统路径上的某处获取 64 位版本。当加载程序发现一个 64 位 DLL 试图加载到您的 32 位应用程序中时,将引发 INVALID_IMAGE_FORMAT 错误。

解决此问题的一种方法是识别 DLL 并在您的应用程序中重新分发正确的版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-19
    • 1970-01-01
    相关资源
    最近更新 更多