2011-08-30 75 views
5

代码是大的发送到这里,我不知道哪些部分是重要的。我在每台电脑上都尝试过,而且它们都无法工作。 VS2010编译代码没有任何警告或错误,并运行应用程序罚款,也工作正常,如果我简单地从操作系统启动应用程序。当我把它放在不同的PC上不起作用时(我的确有Framework 4.0,其他我的应用程序工作正常)。没有安装Visual Studio的应用程序崩溃

在我的笔记本电脑上(win xp),它显示“程序遇到问题,需要关闭......”。标准窗口“发送/不发送”错误说没有具体的问题。

在我的电脑(win xp)上,它和笔记本电脑上的相比,我已经安装了Visual Studio,并且它开始正常工作。当我卸载VS10时,它再次崩溃,像“没有找到未处理的异常即时调试程序...”一样,再次没有具体的问题。

我的朋友带他的笔记本电脑(赢得7),没有消息出现,但没有任何应用程序。它没有做任何事情没有消息,没有应用程序,甚至没有开始进程。当我点击图标等待光标出现2秒,这就是所有。

每次同样的事情没有形式甚至显示它立即崩溃。只有PC应用程序的实际工作是PC(赢得7),我创建它,当然安装了Visual Studio 2010。我相信其他电脑会遗漏VS2010中安装的某些文件或.dll文件和其他垃圾文件。任何想法要寻找什么?我无法在任何地方安装VS,比如说“你需要Adobe Premiere才能观看视频”。

编辑: 活动在Windows:

Application: Floorball.exe 
Framework Version: v4.0.30319 
Description: The process was terminated due to an unhandled exception. 
Exception Info: System.IO.FileNotFoundException 
Stack: 
    at Floorball.Interface.InitializeComponent() 
    at Floorball.Interface..ctor() 
    at Floorball.Program.Main() 

[解决方法] 嘛不完全解决,但我在这是造成死机InitializeCoponent()能够找到GUI组件。它的愚蠢LineShape!我不明白为什么它无法在任何地方正常工作!所以如果每个人都有类似的问题,请尝试这个解决方案

+1

你看过Windows中的事件吗?如果不显示运行命令,请输入'eventvwr'并在崩溃后立即运行。事件查看器应该显示可能的失败原因。 – Kangkan

+0

它是否在事件日志中提供更多信息?转到开始>运行并键入eventvwr并查看应用程序日志中是否有任何内容。 –

+0

您需要提供更多详细信息 - 应用程序类型,正在做什么以及它所引用的系统库。从你所描述的似乎有一些dll由Visual Studio安装,不包含在标准的.net 4.0包中,但它只是猜测 – tchrikch

回答

0

尝试编译对.NET4客户端配置文件浮现在我的脑海里

+0

你是什么意思? – Safiron

2

第一三件事情:

  • 一些.NET库丢失。如果它已经针对.NET 4进行了编译,则可能需要完整的框架,并且只能找到较小的“客户端”版本。检查可再发行组件。
  • 缺少C++库:如果它是一个C++程序,除了.NET之外,还需要安装C++ redist。
  • 调试/发布:如果您在调试配置中进行编译,程序将查找调试.NET(和C++)库,这些库不是由可再发行组件包安装的。使用Release配置可解决此问题。
+0

是的,这是我认为可能是一个问题 – Safiron

+0

试图编译为发布,仍然崩溃 – Safiron

+0

我想安装这些C++库我只是不知道究竟是什么寻找它是一个instaler或更多? – Safiron

4

听起来就像你试图在没有调试dll的机器上运行调试版本。尝试编译发布版本,看看是否有帮助。

附录:

另一件事可能是(但它其实只是凭空猜测没有细节)为64位/ 32位的差异。如果您尝试运行的程序执行P/Invoke,那么这可能是一个问题。如果您的项目设置为以任何CPU为目标,那么它将作为64位操作系统上的64位程序和32位操作系统上的32位程序运行。尝试专门针对x86,看看是否改变任何东西。

+0

不帮助仍然崩溃。 – Safiron

+0

在上面的答案中添加了64位/ 32位讨论 – corvuscorax

+0

我没有使用P/Invoke,它假设是32位应用 – Safiron

0

除了答案提示,以确保您做一个发布版本,请检查您的项目设置:在调试选项卡,部分“调试”禁用选项“启用的Visual Studio宿主进程”在这两个,您的Debug和您的Release配置。

+0

这会有什么影响?我一直认为托管过程仅用于帮助visual studio调试器。 –

+0

@Coffee考虑它试图帮助一个不在那里的视觉工作室调试器。 – Filburt

+0

已尝试不工作:( – Safiron

0

整个上午都在为此而战,现在它已经解决了,它为什么会发生。张贴希望它可以帮助其他人

我安装了Krypton.Toolkit,它自动将工具添加到Visual Studio工具箱中。然后,我将工具添加到设计器中,该工具自动将dll添加到projrect引用,但是该工具包被标记为CopyLocal = false

我构建了一个安装程序,使用了release build文件夹中的所有dll(当然上面DLL不在那里)。

设置copylocal = true,然后重建安装程序,一切工作正常。

0

我只是在过去的两天里处理了这个错误。事实证明,对于目标框架为.NET 4.0或.NET 4.0 CP的项目,在我的项目的案例Visual Basic DLL中,有一些.NET 4.5中不存在的DLL。

将文件打包到安装程序中的InstallShield项目也无法检测到此依赖性。

我的项目是一个Visual Basic(VB6)项目升级到Visual Basic .NET(VB.net)和它在某种程度上需要的DLL称为Microsoft.VisualBasic.PowerPacks.Vs.dll位于

C:\Program Files\Reference Assemblies\Microsoft\VBPowerPacks\v10.0

我后,才发现了这一点意识到该项目在安装Visual Studio的情况下运行良好,但在崩溃日志中没有发现除System.IOException.FileNotFound之外的特定警告。在Visual Studio中浏览我的项目的对象资源管理器,并通过将每个DLL添加到InstallShield LE项目中来逐个尝试每个DLL,然后将其构建并复制到安装有发行软件的VM,从而使我(最终)能够到达此解决方案。

希望这可以帮助别人。