我无法在另一台计算机上运行已发布的应用程序

时间:2011-03-27 00:10:57

标签: c# xna publish publishing

我使用XNA在Visual Studio C#中开发了一款游戏。当我在ClickOnce应用程序中发布应用程序时,它在我的计算机上运行正常。但是,我尝试.zip文件夹并通过ftp在线上传,当我下载并安装在另一台计算机上时,它无法正常工作。它只是说“'应用名称'已经停止工作”。任何人都可以帮助我吗?

4 个答案:

答案 0 :(得分:4)

您收到的错误消息是因为未安装正确版本的.NET Framework或XNA Framework。

您只需将它们安装在目标计算机上,但可能您希望ClickOnce正常工作。

右键单击您的项目,然后单击“属性”。首先转到应用程序并记下“目标框架”。然后转到“发布”页面并单击“先决条件”。通常,您需要:

  • Microsoft .NET Framework 4客户端配置文件(x86和x64)
  • Microsoft XNA Framework Redistributable 4.0
  • Windows Installer 3.1

如果您使用的是其他版本的XNA或.NET Framework,则需要在其中选择适当的先决条件(或更改您要定位的框架的版本)。 ClickOnce本身需要Windows Installer。

还要注意最顶部的复选框(应该检查)。它显示“创建安装程序以安装必备组件”。这意味着发布工具将创建一个setup.exe来与您的项目一起使用。 负责安装先决条件的可执行文件(然后启动ClickOnce安装程序)。如果您直接使用ClickOnce安装,它可能会起作用,但您不会安装必备条件,如果它们丢失,您的游戏将无法工作(带有钝的错误消息)。

另见答案:Feasibility of an XNA game on PC

答案 1 :(得分:1)

听起来您的安装程序实际上并未安装所需的一切,并且第一台计算机碰巧缺少依赖项。我先尝试融合日志,然后根据需要附加一个调试器。

答案 2 :(得分:1)

所以我的老答案是很好的信息 - 所以我会离开它。但我认为这也可能是错误的。

我怀疑你的应用程序启动正常(框架和所有),然后出于某种原因抛出一个未处理的异常。在不知道异常是什么的情况下,我无法真正为您提供建议。所以这是一个快速而肮脏的方式来找出:

打开Program.cs并用此函数包含函数Main的内容:

try
{
    // The old contents of Main go here
}
catch(Exception ex)
{
    MessageBox.Show(ex.ToString());
}

您还需要在项目中添加对System.Windows.Forms的引用。我不建议在开发过程中保留此代码(因为您希望调试器停止在未处理的异常上 - 并且此代码正在处理它们。)

答案 3 :(得分:0)

验证XNA / .NET是否已正确安装(直到特定版本)

要查找错误,请转到Windows附带的事件查看器应用程序,并查找与已安装的.NET版本相关的错误。它应该显示具体的错误。

enter image description here