无法在开发环境之外运行完整的应用程序

时间:2019-05-13 21:27:34

标签: c# visual-studio entity-framework-6

我刚刚完成了对新应用程序的完全调试,并希望将其交给几个人签出。它是在Visual Studio Community 2017中开发的应用程序。它使用Entity Framework 6.2.0。当我在VS2017中运行它时,它可以正常工作。当我从文件管理器运行它时,出现以下错误:"Could not load file or assembly Entity Framework, Version=6.0.0.0... or one of its dependencies. The system cannot find the file specified."

我尝试卸载并重新安装Entity Framework,但这不能解决我的问题。 有人可以给我一个地方解决我的问题吗?谢谢。

2 个答案:

答案 0 :(得分:0)

您遇到的特定错误意味着它找不到实体框架DLL,您可以尝试检查它在哪里寻找文件,

您可以尝试在Visual Studio中转到构建属性,然后将Entity Framework DLL标记为始终复制到输出路径(即本地复制)

Build Local

一个很好的方法是使用FusionLog.NET

从链接地址中摘录的内容是什么。

  

程序集绑定日志查看器显示程序集绑定的详细信息。   此信息可帮助您诊断.NET Framework为什么不能   在运行时定位程序集。这些失败通常是结果   部署到错误位置的程序集的原始图像   不再有效,或者版本号或区域性不匹配。的   公共语言运行库通常无法找到程序集   在您的应用程序中显示为TypeLoadException。

这个想法是以admin身份运行,设置自定义日志路径并运行您的应用程序,如果应用程序中有问题,您可以双击它并检查显示的网页,该页面向您显示组件绑定失败的原因以及它要寻找的路径。

答案 1 :(得分:0)

好的,感谢您的帮助,我现在了解发生了什么。这是我发现的。

  1. 如果您查看References / EntityFramework的属性的默认位置,则如果Properties / CopyLocal等于false,则应用程序从Entity / Path中查找EntityFramework。

  2. 如果我想在开发环境中看到相同的错误,我需要将Properties / CopyLocal更改为true,然后重新编译程序。如果然后运行该程序,我将得到($ exception).FusionLog错误,它有助于尝试解释发生了什么情况。

  3. 为了从文件管理器中运行程序,我不得不将Properties / CopyLocal更改为true,重新编译程序,然后将EntityFramework.DLL复制到程序所在的目录中。

    < / li>