2013-06-20 44 views
2

我在使用DevExpress控件的winforms应用程序上运行。Winforms Devexpress应用程序部署

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

即使我把属性 - >发布 - >应用程序文件作为包括所有的dll,它没有工作。

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

+0

您**必须**安装DevExpress ** redist **(详情请参阅[本文档](http://help.devexpress.com/#WindowsForms/CustomDocument3124))。 –

+0

我将它安装在开发计算机上,但我是否也必须将其安装到每台客户计算机上? – gesus

+2

在开发计算机上安装完整的数据包(库,设计时间支持,示例等)。在客户计算机上,根据您的EULA,只安装redists(没有设计支持,没有代码,没有示例,没有文档)。从我发布的链接开始,了解您必须重新构建哪些DLL。要**安装**,他们不仅仅是复制到某个地方(除非_somewhere_是应用程序文件夹),您最好将它们放入GAC。您的设置生成器应该管理所有这些依赖关系(或者您是否使用定制的xcopy部署?) –

回答

7

你提到的属性标记他们的意见 - >发布 - >应用程序文件。大多数情况下,这些文件将被标记为包含,但也有一些可能会说“先决条件(自动)”,您必须将其明确标记为包含。在下面的例子中的截图,你就必须改变从前提条件DevExpress.SpellChecker有:

enter image description here

您可能还需要勾选“显示所有文件”,在同一对话框复选框,并看看是否有是否列出了没有明确标记为排除。

最后,当您的应用程序在客户端计算机上失败时,异常详细信息应该包含缺失组件的名称,这应该给您一个很大的线索。

0

在您的DevExpress安装文件夹中是一个子文件夹Bin \ Framework。你必须用你的应用程序部署你使用的DLL。

编辑:你也应该考虑阿德里亚诺

+0

我将该文件夹完全复制到目标计算机,而无需安装DevExpress组件,但它不起作用。可能是有一些注册表的东西? – gesus

+0

当您将dll复制到您的exe文件所在的位置时,您不需要任何注册。如果您复印到其他地方,则必须扩展win-path-variable(赢得搜索路径)。 – Micha

0

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