【问题标题】:Winforms Devexpress application deploymentWinforms Devexpress 应用程序部署
【发布时间】:2013-06-20 11:02:09
【问题描述】:

我正在开发一个使用DevExpress 控件的winforms 应用程序。

在开发计算机上很好,但是当我尝试在客户计算机上部署应用程序时它不起作用,因为我猜它无法加载 devexpress dll。

即使我将 properties->publish->application files 上的所有 dll 都作为包含,它也没有用。

然后我在目标计算机上安装了Devexpress 组件并开始工作。如何在不安装devexpress component library 的情况下使应用程序在客户计算机上运行?

【问题讨论】:

  • 必须安装 DevExpress 的 redist(详情请参阅 this document)。
  • 我将它安装在开发计算机上,但我还必须将它安装到每台客户计算机上吗?
  • 在开发计算机上安装完整的数据包(库、设计时支持、示例等)。在客户计算机中,您仅根据 EULA 安装 redists(无设计支持、无代码、无示例、无文档)。从我发布的链接开始,了解您必须重新分发哪些 DLL。 安装它们不仅仅是复制到某个地方(除非somewhere是应用程序文件夹),您最好将它们放在GAC中。您的设置构建器应该管理所有这些依赖项(或者您是否使用自定义 xcopy 部署?)

标签: c# winforms dll devexpress


【解决方案1】:

您提到您在属性 -> 发布 -> 应用程序文件中标记了它们。在大多数情况下,这些文件将被标记为包含,但有些文件可能会显示“先决条件(自动)”,您必须将它们明确标记为包含。在下面的示例屏幕截图中,您必须将 DevExpress.SpellChecker 从 Prerequisite 更改为 Include:

您可能还想在同一个对话框中选中“显示所有文件”复选框,看看是否有任何未明确标记为“排除”的列表。

最后,当您的应用程序在客户端计算机上失败时,异常详细信息应包含缺失组件的名称,这将为您提供重要线索。

【讨论】:

    【解决方案2】:

    在您的 DevExpress 安装文件夹中是一个子文件夹Bin\Framework。您已经使用它部署了您在应用程序中使用的 dll。

    编辑:您还应该考虑 Adriano

    的评论

    【讨论】:

    • 我在没有安装 DevExpress 组件的情况下将该文件夹完全复制到目标计算机,但它不起作用。可能有一些注册表的东西?
    • 当您将dll复制到您的exe文件所在的位置时,您不需要任何注册。如果您复制到其他地方,您必须扩展 win-path-variable (win searchpath)。
    【解决方案3】:

    如果您只是从 bin 文件夹中复制应用程序,则只需在解决方案的“参考”下找到 DevExpress dll,并将属性“CopyLocal”更改为“true”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      相关资源
      最近更新 更多