c# - 如何在不创 build 置的情况下让可执行文件在其他计算机上运行,

标签 c# winforms charts aforge

我有一个程序可以绘制一个包含一些数据的文本文件。它在 VS 2010 C# 的调试/ Release模式下工作。我正在使用 .Net 和 Aforge 框架。在我的引用资料中有 AForge.Math 和 System.Windows.Forms.Charting 库。

当我在 ...bin/release 文件夹中运行可执行文件时,它完全可以工作,这意味着当我将我的文本文件拖放到我的表单中时,会出现一个图表,这是应该的。但是,如果我将该发布文件夹复制到另一台计算机上,.exe 会运行,但是当我拖放文本文件时,它不会绘制。我只是得到一个白色的空白表格。 这就是程序运行时的样子...... This is what the program should look like when it works

当它不工作时,它会做类似这样的事情(所以我试图将一个文本文件拖放到表单中),然后我得到看起来像这样的东西...... This is not working

我怀疑我的问题来自使用 AForge 框架。所有计算机都有 .Net,因此当输入数据时,图表会继续工作,但正在绘制的数据来自不在计算机上的 AForge。虽然我不完全确定。

最佳答案

您应该复制在调试或发布文件夹中找到的所有 DLL。但有时并不是所有的 DLL 都出现在那里。 如果您使用的是框架,则可能正在安装目录或 GAC 中寻找这些 DLL

在这种情况下,AForge 是一个外部 dll,因此您有两种解决方案:

  1. 在所有要复制程序的电脑上安装 AForge
  2. CopyLocal True:在引用中,在每个 AForge DLL 中,确保 CopyLocal 为 true。检查这个link寻求有关设置 CopyLocal=true 的帮助。然后这些 DLL 将出现在您的调试/发布目录中,因此当您拖动时所有引用都将起作用。确保复制 debug/release 文件夹中的所有文件,特别是 .dll.exe.config。一旦你让它工作,也许你可以避免复制 .pdb 文件。

enter image description here

我个人会尝试最后一个。

关于c# - 如何在不创 build 置的情况下让可执行文件在其他计算机上运行,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15665481/

相关文章:

C# DevExpress XtraGrid,绑定(bind)到嵌套类的属性

javascript - 谷歌可视化图表

excel - 如何设置图表 Axis 上的标签对齐方式?

python - 如何使用 Python 和 Openpyxl 向我的 Excel 折线图添加高级样式

c# - 在 C# (web api) 中测试经过身份验证的方法(使用不记名 token )的正确方法

C# Outlook 2007 COM 互操作应用程序不退出!

c# - 字符串如何存储在对象数组中?

c# - 我应该使用 PictureBox 还是 Panel 在我的表单上绘图?

c# - Windows 语音识别 C#

c# - 当我在组合框中选择一种语言时,如何更改所有表单的文本?