c#.NET应用程序在具有System.IO.FileNotFoundException的3台机器中的1台启动时崩溃。

问题描述 投票:1回答:3
我正在用Visual Studio 2010用C#编写应用程序,并且在我的应用程序工程接近尾声时。为了测试,我使用了3种不同的机器:

机器A:Workstation-PC (Intel CPU, Win 7 64Bit, .NET 4.0)

机器B:Private PC (Intel CPU, Win7 64Bit, .NET 4.0)

机器C:Labor-PC (AMD64, Win7 64Bit, .NET 4.0)

我想要一个独立的.exe文件作为最终版本。无论我是在解决方案文件夹中运行该应用程序,还是将其复制到任何目录并在其中运行,该应用程序在A机和B机上的运行方式都一样。它始终有效(应该如此)。但是机器C直接在应用程序启动时抛出错误,并输出一个“

... WERInternalMetadata.xml

”文件,该文件显示“ System.IO.FileNotFoundException”:CLR20r3 myapp.exe 1.0.0.0 53318d78 Testreporter 1.0.0.0 53318d78 5d f System.IO.FileNotFoundException

但是,当我在其中包含* .dll文件的解决方案文件夹(例如... myapp \ bin \ x64 \ Debug)中启动应用程序时,该应用程序可以正常运行而不会出现任何问题。这是否意味着程序在根目录中搜索其依赖项?

我已经检查了代码中的引用。此外,如果引用存在任何问题,则该应用程序将无法在计算机B上运行...

我很好奇,无论我将.exe放在哪里,机器A和B都可以毫无问题地运行该程序,但是当机器C放置在特定路径中时,机器C仅可以正确运行我的应用程序。...

也许处理器在那里起作用?关于如何解决此问题的任何想法?

BTW:我如何建立一个.exe文件,其中已包含我的应用程序需要的所有依赖项和库。一个独立的exe可以这么说...

非常感谢

我正在用Visual Studio 2010用C#编写应用程序,并且在我的应用程序工程接近尾声时。为了进行测试,我使用了3台不同的机器:机器A:工作站PC(Intel CPU,Win ...

c# .net-4.0 filenotfoundexception
3个回答
0
投票
看起来EXE能够在计算机A和B上的GAC中找到必需的DLL,但是在计算机C上找不到它。因此,只有特定路径在起作用。

0
投票
我发现了一个主题相似的主题,导致我找到了解决方案:

0
投票
我也有这个问题,在Windows->应用程序日志中有类似的条目,包括FileNotFoundException。非常令人失望的是,每个应用程序日志线索只是一个兔子洞(关于WHAT文件的特定信息不足)。最终,我通过Procmon.exe发现了自己的错误方式,并扫描了“结果”列中标记为“找不到”的每一行。我忘记将复制的DLL作为项目的一部分复制到目标计算机上。如果Procmon.exe消失了,我会死的。自从我从1998年开始使用VisualStudio以来,它帮助解决了大约90%遇到的细微问题。为自己赢得了“今日的骨头”奖...
© www.soinside.com 2019 - 2024. All rights reserved.