繁体   English   中英

c# .NET 应用程序在 3 台机器中的 1 台机器上启动时崩溃,出现 System.IO.FileNotFoundException

[英]c# .NET application crashes on startup on 1 of 3 machines with System.IO.FileNotFoundException

我正在使用 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 上的魅力一样。 它始终有效(应该如此)。 "-file which says " ":但是机器 C 直接在应用程序启动时抛出一个错误,并输出一个“ ”-文件,上面写着“ ”:

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 只有在放置在特定路径时才能正确运行我的应用程序......

也许处理器在那里发挥作用? 关于如何解决这个问题的任何想法?

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

非常感谢

看起来 EXE 能够在机器 A 和 B 上的 GAC 中找到必要的 DLL,但在机器 C 中却找不到。因此,只有特定路径有效。

请检查 GAC。

此外,要将 DLL 嵌入到 EXE 中,请参阅此 SO 线程:将 DLL 嵌入到已编译的可执行文件中

我找到了一个主题类似的主题,引导我找到解决方案:

System.IO.FileNotFoundException。 我在哪里可以找到错误的路径?

我也在使用 Power Pack。 " from the solution directory and started the application, my program failed with the descripted error.当我从解决方案目录中删除“ ”并启动应用程序时,我的程序因描述的错误而失败。 复制回来,然后再次启动应用程序成功。 所以我猜我的目标机器(机器 C)需要一个 Power Pack 安装。

所以我想我可以通过 4 种方式解决这个问题?:

" with the .exe in same folder and then start my application. 1.) 将“ ”与 .exe 留在同一文件夹中,然后启动我的应用程序。

2.) 安装 PowerPack http://go.microsoft.com/fwlink/?LinkID=145727&clcid=0x804

3.) 手动将 PowerPack.dll 安装到 GAC。 或者使用此处所述的相应工具将它们发送到 GAC http://msdn.microsoft.com/en-us/library/yf1d93sz%28v=vs.110%29.aspx

4.) 将 .dll 嵌入到 .exe 中

我对吗?

非常感谢您的帮助!

我也有这个问题,在 Windows->Application 日志中有类似的条目,包括 FileNotFoundException。 非常失望的是,每个应用程序日志线索都只是一个兔子洞(缺少关于 WHAT 文件的具体信息)。 我最终通过 Procmon.exe 发现了我的邪恶方法的错误,并扫描了结果列中标记为“未找到”的每一行。 有一个作为项目一部分生成的配套 DLL,我忘记将其复制到目标机器上。 如果 Procmon.exe 消失了,我就死定了。 自从我 1998 年开始使用 VisualStudio 以来,它已经帮助解决了大约 90% 遇到的微妙问题。给自己一个“每日最佳骨干”奖......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM