2012-01-20 91 views
0

我创建了一个C#/ MVVM项目,它在VS2010中运行时运行良好。我将exe文件从/ release文件夹复制到桌面,并尝试将其作为独立程序运行并获取错误消息“MyProgram has stopped working”MyProgram已停止工作错误

我的解决方案有两个项目:MyProgram和MyProgramModel(。 ..Model包含数据库项目的EDMX模型)。 MyProgram项目设置为启动项目。

当我为C#/ MVVM创建一个exe文件时,是否存在缺失的东西?

+0

您的可执行文件可能依赖于您未复制的/ Release文件夹中的其他一些内容。另外,什么是C#/ MVVM项目?您是否指的是MVVM Light框架? – BoltClock

+0

C#/ MVVM就意味着我使用MVVM方法/框架编写了一个C#程序,以防与exe文件输出有关。 – BrianKE

+0

我确实在/ Release目录中有项目使用的其他库。有没有办法让我可以运行一个exe文件,或者我必须将/ Release目录中的所有文件复制到我的桌面才能在VS2010之外运行? – BrianKE

回答

0

由于@BoltClock表示应该有,你也应该复制发布文件夹中的另一个文件。可能这是一个名为MyProgramModel.dll或类似的DLL。
为了获得更多信息,您可以等待Windows尝试修复程序,然后您可能会显示类似于this one的对话框。点击调试,应该有一个更全面的错误,你可以考虑。

1

确保项目引用中包含的所有二进制文件与应用程序位于同一目录中。唯一不需要的时间是如果您使用了某种第三方.NET链接器应用程序,或者在全局程序集缓存(GAC)中安装了项目的依赖项。

总之,只要确保项目引用的所有* .dll和* .exe程序集在执行应用程序时位于同一目录中。在测试过程中,Visual Studio会默认为您执行此操作,方法是将它们放入Release/Debug文件夹中。您不需要包含* .vshost.exe应用程序,因为这是一个用于调试目的的简单存根应用程序。

如果你坚持部署作为一个单一的应用程序,您需要考虑的第三方链接:

其他解决方案包括一个安装部署包它可以在Visual Studio或Click-Once部署中创建。无论是传统的安装技术的形式:

+0

Dimitar的回答是接受的,因为它确实回答了直接问题,但也像这样,因为我想将应用程序部署为单个文件(或至少作为单个安装文件)。 – BrianKE