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();
行,它就会出现与上面相同的错误。
它也都在源代码管理中,所以我已经把它加载到一个同事的系统上,包括参考、库、配置等等,是的,它在他们的机器上运行得很好。
尝试解决这个问题,我有:
确保引用系统。
确保它有正确的权限
确保系统。核心在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
在"打开或关闭Windows功能"中,删除。net Framework 3.5,重新启动,重新安装。net 3.5,重新启动,试图运行程序
安装所有可用的windows更新(最初是。net更新,但最终全部安装)
试图找到
sfc /scannow
的问题,但没有效果修改了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。配置文件。没有发现错误,但我不确定我是否能够识别出明显的错误,所以我不能说这条研究途径已经关闭了。
我现在完全不知所措。我的意思是,除非有一台新电脑,然后从那里开始。
我做错了什么?
添加新的应用程序池网站。我们遇到了同样的问题,并通过在IIS中创建新的网站和应用程序池来解决。