过去一周我学习并用 C# 编写了一个小型个人应用程序。我使用 dotnetbar,当我在我的机器上调试时一切都运行良好,但我想将所有内容编译成一个可执行文件并让一切正常工作...
我被告知在 Visual Studio 中编译的方式是构建解决方案,将文件放入 bin/release 或 bin/debug 中。我在发布模式下构建了解决方案并运行了应用程序,一切正常,但是当我将其转移到另一台计算机进行测试时,没有打开任何内容,大约 30 秒后出现错误。
我以为它是dotnetbar,所以我用一个按钮创建了一个新项目,在另一台计算机上测试它并且它有效。我从 dotnetbar 添加了一个 ButtonX,测试了它,它没有打开,甚至没有错误消息。
为什么会出现这种情况?该程序是否需要附带 dotnetbar dll,或者我可以以某种方式使用该应用程序编译它们吗?
是的,需要包含所有依赖项...您无法将它们链接到程序集中。我假设这个 dotnetbar(从未使用过)可能已将其自身安装到您的 GAC 中。如果相应的 .dll 未复制到您的 Release 文件夹中,则您需要将程序集引用上的“复制本地”设置更改为 true。这会将其复制到输出文件夹,以便在部署时可用。
看起来可能缺少一些 .dll 文件,这些文件应该与发布版本位于同一文件夹中。通常,您需要发布文件夹中的所有文件才能正确运行应用程序(因为您可能编写的某些文件可能刚刚创建为 DLL 并在运行时链接)。