System. io . filenotfoundexceptionCore,同时在.net 3.5中使用Ninject

本文关键字:Ninject net filenotfoundexceptionCore io System | 更新日期: 2023-09-27 17:51:12

我使用Ninject (v3.2.2.0)与一个建立在。net 3.5框架上的工具。这个一直都很好——直到几周前我把开发放到一边。

我已经拿起它再次准备发布,它不再是好的-它仍然编译没有问题,但我现在得到一个FileNotFoundException每当我试图运行它:

先。FileNotFoundException发生消息=无法加载文件或程序集。Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e'或其依赖项之一。系统找不到指定的文件。源= Ninject文件名=系统。Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798eFusionLog=从C:'Windows'Microsoft.NET'Framework64'v2.0.50727'mscorwks.dll加载的程序集管理器运行在可执行文件E:'work'wire'M'Tools'Import'bin'Debug'Import.vshost.exe下详细的错误日志如下。

===预绑定状态信息===

日志:User = ZOO'TAL日志:DisplayName = System。Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e(完全指定)LOG: Appbase = file:///E:/work/wire/M/Tools/Import/bin/Debug/日志:初始PrivatePath = NULL调用程序集:Ninject, Version=3.2.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7.

LOG:此绑定在默认加载上下文中启动。日志:使用应用程序配置文件:E:'work'wire'MR'Tools'Import'bin'Debug'Import.vshost.exe. config日志:使用C:'Windows'Microsoft.NET'Framework64'v2.0.50727'config'machine.config中的机器配置文件。日志:策略后引用:系统。Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e日志:尝试下载新的URL文件:///E:/work/wire/M/Tools/Import/bin/Debug/System.Core.DLL。日志:尝试下载新的URL文件:///E:/work/wire/M/Tools/Import/bin/Debug/System.Core/System.Core. dll。日志:尝试下载新的URL文件:///E:/work/wire/M/Tools/Import/bin/Debug/System.Core.EXE。日志:尝试下载新的URL文件:///E:/work/wire/M/Tools/Import/bin/Debug/System.Core/System.Core. exe .

加:在Ninject.Planning.Bindings.BindingConfiguration . .男星()在Ninject.Planning.Bindings.Binding . .男星(类型服务)在Ninject.Syntax.BindingRoot.BindT在Ninject.KernelBase . .(IComponentContainer组件,INinjectSettings设置,INinjectModule[]模块)在Ninject.StandardKernel . .男星(INinjectModule[]模块)在Import.ImportBootstrapper。导入(String[] xiArgs) inM e: ' '线工作' '工具' ' ImportBootstrapper.cs导入:行16 InnerException:

我已经采取了它的极端-我目前试图只运行以下代码:

using Ninject;
namespace ConsoleApplication1
{
  class Program
  {
    static void Main(string[] args)
    {
      new StandardKernel();
    }
  }
}

同样,编译得很好,但是一旦我到达new StandardKernal();行,它就会出现与上面相同的错误。

它也都在源代码管理中,所以我已经把它加载到一个同事的系统上,包括参考、库、配置等等,是的,它在他们的机器上运行得很好。

尝试解决这个问题,我有:

  1. 确保引用系统。

  2. 确保它有正确的权限

  3. 确保系统。核心在GAC中确实存在——确实存在,结果如下:

    C:'> gacutil -l | find /i "system.core"
    System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL
    System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL
    
  4. 在"打开或关闭Windows功能"中,删除。net Framework 3.5,重新启动,重新安装。net 3.5,重新启动,试图运行程序

  5. 安装所有可用的windows更新(最初是。net更新,但最终全部安装)

  6. 试图找到sfc /scannow的问题,但没有效果

  7. 修改了App.config文件中各种支持的druntime版本:

    <configuration>
       <startup>
         <supportedRuntime version="v2.0.50727"/>
         <supportedRuntime version="v3.5.30729"/>
       </startup>
    </configuration>
    

(要么有,要么有,要么没有明显区别)

  • 确保参考文件明确包含System。Core (<Reference Include="System.core" />).

  • 确保项目属性明确设置为。net 3.5

  • 我也检查了机器。配置和web。配置文件。没有发现错误,但我不确定我是否能够识别出明显的错误,所以我不能说这条研究途径已经关闭了。

  • 我现在完全不知所措。我的意思是,除非有一台新电脑,然后从那里开始。

    我做错了什么?

    System. io . filenotfoundexceptionCore,同时在.net 3.5中使用Ninject

    添加新的应用程序池网站。我们遇到了同样的问题,并通过在IIS中创建新的网站和应用程序池来解决。