我使用Ninject(v3.2.2.0)和一个基于.net 3.5框架的工具。 直到几个星期前,当我把发展放在一边时,情况一直很好。
为了准备发布,我再次拿起它,并且不再好 – 它仍然编译没有问题,但是现在每当我尝试运行它时,我都会得到一个FileNotFoundException:
System.IO.FileNotFoundException发生Message =无法加载文件或程序集“System.Core,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e”或其依赖项之一。 该系统找不到指定的文件。 Source = Ninject FileName = System.Core,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e FusionLog =从C:\ Windows \ Microsoft.NET \ Framework64 \ v2.0.50727 \ mscorwks.dll加载的程序集pipe理器E:\ work \ wire \ M \ Tools \ Import \ bin \ Debug \ Import.vshost.exe —下面是详细的错误日志。
===预先绑定状态信息===
- 编译c项目时发生致命错误LNK1120
- 无法在通用应用程序中引用System.Windows.Media.AudioFormat
- 我怎样才能以编程方式切换CAPSLOCK或防止它被键盘切换?
- 在Windows上redirect标准输出/标准错误
- 在编译的ROOT(CERN)应用程序中将TCanvas绘制到屏幕上
LOG:User = ZOO \ TAL LOG:DisplayName = System.Core,Version = 2.0.5.0,Culture = neutral,PublicKeyToken = 7cec85d7bea7798e(完全指定)LOG:Appbase = file:/// E:/ work / wire / M / Tools / Import / bin / Debug / LOG:初始PrivatePath = NULL调用程序集:Ninject,Version = 3.2.0.0,Culture = neutral,PublicKeyToken = c7192dc5380945e7。
日志:此绑定启动默认加载上下文。 日志:使用应用程序configuration文件:E:\ work \ wire \ MR \ Tools \ Import \ bin \ Debug \ Import.vshost.exe.Config LOG:使用C:\ Windows \ Microsoft.NET \ Framework64 \ v2中的计算机configuration文件.0.50727 \ CONFIG \ machine.config中。 日志:后策略引用:System.Core,版本= 2.0.5.0,文化=中性,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。
StackTrace:在Ninject.Planning.Bindings.BindingConfiguration..ctor()在Ninject.Planning.Bindings.Binding..ctor(types服务)在Ninject.Syntax.BindingRoot.BindT在Ninject.KernelBase..ctor(IComponentContainer组件,INinjectSettings E:\ work \ wire \ M \ Tools \ Import \ ImportBootstrapper.cs中的Import.ImportBootstrapper.Import(String [] xiArgs)的Ninject.StandardKernel.ctor(INinjectModule []模块)第16行InnerException:
我已经采取了这个极端 – 我目前正在试图只运行下面的代码:
using Ninject; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { new StandardKernel(); } } }
再次,编译得很好,但只要我到达new StandardKernal();
它断行与上面的相同的错误。
这也是所有源代码pipe理,所以我已经加载了一个同事的系统,引用,库,configuration和所有,是的,它在他们的机器上运行良好。
为了尝试解决这个问题,我有:
确保引用System.Core文件存在(它)。
确保它具有正确的权限。
确保System.Core在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
在“打开或closuresWindowsfunction”中,删除了.NET Framework 3.5,重新启动,重新安装了.NET 3.5,再次重新启动,试图运行该程序。
安装所有可用的Windows更新(最初的.NET的,但最终都是)。
试图findsfc /scannow
问题,没有任何效果。
在App.config文件中使用各种supportedRuntime版本进行修剪:
<configuration> <startup> <supportedRuntime version="v2.0.50727"/> <supportedRuntime version="v3.5.30729"/> </startup> </configuration>
(两者兼有,或者两者都没有造成明显的差别)
确保引用文件确实包含了System.Core( <Reference Include="System.core" />
)。
确保项目属性确实设置为.Net 3.5。
我也看了一下machine.config和web.config文件。 没有任何事情看起来有错,但我不确定是否能够确定是否有明显的错误,所以我不能说这个研究的途径是封闭的。
我现在完全处于亏损状态。 我的意思是,没有得到一台新电脑,从那里开始。
我究竟做错了什么?
添加网站与新的应用程序池。 我们遇到了同样的问题,并通过在IIS中创建新的网站和应用程序池进行修复。