2012-01-03 113 views
0

我花了一个星期的时间在C#中学习和编写一个小型的个人应用程序。我用dotnetbar和一切运行良好,当我在我的机器上调试,但我想编译一切成一个可执行文件,并使一切工作...Visual Studio C# - 编译应用程序?

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

我认为这是dotnetbar,所以我用一个按钮做了一个新项目,在另一台计算机上测试了它,并且它工作正常。我从dotnetbar添加了一个ButtonX,测试了它,但没有打开,甚至没有出现错误信息。

这是怎么发生的?该程序是否需要带有dotnetbar dll,或者我可以用该应用程序以某种方式编译它们?

+0

您确定您测试的其他计算机上是否安装了适当版本的.NET Framework?没有办法创建不需要安装.NET Framework的.NET应用程序。 – 2012-01-03 03:33:30

+0

是的,我试着用dotnetbar dll测试它,它的工作,所以唯一的问题是,我需要包括我想要在应用程序内的DLL。 – mowwwalker 2012-01-03 03:40:17

回答

1

查看DotNetBar的website的这些信息。您需要复制文件或在Visual Studio中使用Setup Project

从上述网站:

DotNetBar为WPF与你的应用程序是为包括在同一个文件夹中的 DotNetBar组件为您的应用程序的可执行 一样简单。您只需分发在项目中引用 的装配。

以下组件可包括:

DevComponents.WpfRibbon.dll

DevComponents.WpfEditors.dll

DevComponents.WpfDock.dll

DevComponents.WpfSchedule.dll


编辑:

根据您的意见,你可以尝试做一个Self Extracting Exe或使用类似ILMerge。我没有亲自尝试过。

+0

有人曾经提到它,我不太想知道如何使用它,但我最终得到它,它的工作,所以谢谢:D – mowwwalker 2012-01-03 06:19:20

+0

@Walkerneo没有问题,很高兴成为帮助 – 2012-01-03 06:24:20

2

是的,所有的依赖关系都需要包含......你不能将它们链接到你的程序集中。我假设这个dotnetbar(从来没有用过)可能将自己安装到您的GAC中。如果相应的.dll没有复制到您的发布文件夹中,则需要将程序集引用中的“复制本地”设置更改为true。这会将其复制到输出文件夹,这使得它在部署时可用。

+0

虽然可以这样做。我有我使用dotnetbar下载的应用程序,但只有一个可执行文件。 – mowwwalker 2012-01-03 03:03:35

+1

您可能已经安装了它们,或者您下载的应用程序使用了以您的名义安装它们的引导安装程序。无论哪种情况,.NET都不支持链接,并且这些依赖关系必须以某种方式存在 – 2012-01-03 03:05:15

+0

这两个都不是......我被告知它使用了某种依赖编译器,无需外部文件。 – mowwwalker 2012-01-03 03:10:26

0

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

相关问题