Visual Studio C# - 编译应用程序?

问题描述 投票:0回答:3

过去一周我学习并用 C# 编写了一个小型个人应用程序。我使用 dotnetbar,当我在我的机器上调试时一切都运行良好,但我想将所有内容编译成一个可执行文件并让一切正常工作...

我被告知在 Visual Studio 中编译的方式是构建解决方案,将文件放入 bin/release 或 bin/debug 中。我在发布模式下构建了解决方案并运行了应用程序,一切正常,但是当我将其转移到另一台计算机进行测试时,没有打开任何内容,大约 30 秒后出现错误。

我以为它是dotnetbar,所以我用一个按钮创建了一个新项目,在另一台计算机上测试它并且它有效。我从 dotnetbar 添加了一个 ButtonX,测试了它,它没有打开,甚至没有错误消息。

为什么会出现这种情况?该程序是否需要附带 dotnetbar dll,或者我可以以某种方式使用该应用程序编译它们吗?

c# compilation reference
3个回答
2
投票

是的,需要包含所有依赖项...您无法将它们链接到程序集中。我假设这个 dotnetbar(从未使用过)可能已将其自身安装到您的 GAC 中。如果相应的 .dll 未复制到您的 Release 文件夹中,则您需要将程序集引用上的“复制本地”设置更改为 true。这会将其复制到输出文件夹,以便在部署时可用。


1
投票

从 DotNetBar 的网站查看此信息。 您需要复制文件或使用 Visual Studio 中的安装项目

来自上述网站:

DotNetBar for WPF 与您的应用程序一样简单,只需包含 DotNetBar 程序集与应用程序位于同一文件夹中 可执行的。您只需要分发您引用的程序集 在你的项目中。

可能包含以下组件:

DevComponents.WpfRibbon.dll

DevComponents.WpfEditors.dll

DevComponents.WpfDock.dll

DevComponents.WpfSchedule.dll


编辑:

根据您的评论,您可以尝试制作自解压 Exe 或使用类似 ILMerge 的东西。我没有亲自尝试过。


0
投票

看起来可能缺少一些 .dll 文件,这些文件应该与发布版本位于同一文件夹中。通常,您需要发布文件夹中的所有文件才能正确运行应用程序(因为您可能编写的某些文件可能刚刚创建为 DLL 并在运行时链接)。

© www.soinside.com 2019 - 2024. All rights reserved.