我在Visual Studio 2008上使用配置“Release”编译了我的C#windows窗体应用程序。当我尝试在另一台计算机上运行它时,根本没有显示任何窗口。在Windows 7上,另一台计算机安装了Windows XP。 它能是什么?
加: 我没有创建任何安装程序。另一台机器有.net框架3.0,而不是3.5安装,但简单的hello world应用程序工作得很好。我试图将程序复制到我的计算机上的另一个文件夹 - 没有变化。
答案 0 :(得分:5)
创建安装程序,而不是简单地复制文件。这将有助于确定您是否遗漏了任何内容,例如.net fw 3.5。
答案 1 :(得分:4)
你说:
另一台机器有.net框架 3.0,而不是3.5安装
如果您将项目配置为使用.NET 3.5运行,则必须将其安装在另一台计算机上。
答案 2 :(得分:3)
从许可问题到已安装框架版本的差异,有很多可能性。考虑添加一个部署项目,至少会处理所有依赖项,从而消除大量可能的问题。
编辑:如果没有更多细节,我们将无法提供帮助。
答案 3 :(得分:3)
我同意所有人的意见。有很多事情可能会出错。这是我对这个问题的看法。你是否在应用程序启动时生成任何线程?如果是这样,请确保您的子线程没有失败,如果您正在进行任何异常处理,请记住,您将无法从主线程捕获子线程中的异常,因为它们不会冒泡并且基本上会被吞下去只是一个抬头。
答案 4 :(得分:3)
仔细检查.NET版本,如果你构建了一个针对.NET 3.5的版本,而另一台机器没有.NET 3.5,那么必须安装我害怕,不仅仅是这样,不要忘记Service Pack 1也是如此。看看这个SO thread来确定已安装的.NET版本,在“看似已损坏”的计算机上运行它以查看版本...
答案 5 :(得分:1)
尝试从命令提示符运行程序。有时会将消息转储到控制台。我猜它会与.net版本有关。
答案 6 :(得分:1)
只需在解决方案资源管理器中添加另一个表单,然后将源代码从以前的表单复制到新表单,也可以从表单设计器复制到新表单设计器。
答案 7 :(得分:0)
启动程序,然后查看Windows事件日志。您将在Windows协议应用程序中找到错误条目。可能有两个条目。它告诉你原因。
答案 8 :(得分:0)
在控制台中运行您的应用程序,其前缀为dotnet:
dotnet yourapp.exe
它给了我更多的日志来处理。