gpt4 book ai didi

c# - 在 .Net 3.5 中使用 Ninject 时 System.Core 的 System.Io.FileNotFoundException

转载 作者:可可西里 更新时间:2023-11-01 09:37:34 24 4
gpt4 key购买 nike

我将 Ninject (v3.2.2.0) 与基于 .net 3.5 框架构建的工具一起使用。这 一直很好 - 直到几周前我搁置开发。

我再次拿起它为发布做准备,但它不再正常 - 它仍然可以毫无问题地编译,但现在每当我尝试运行它时都会收到 FileNotFoundException:

System.IO.FileNotFoundException occurred Message=Could not load file or assembly 'System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e' or one of its dependencies. The system cannot find the file specified. Source=Ninject FileName=System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e FusionLog=Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll Running under executable E:\work\wire\M\Tools\Import\bin\Debug\Import.vshost.exe --- A detailed error log follows.

=== Pre-bind state information ===

LOG: User = ZOO\TAL LOG: DisplayName = System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e (Fully-specified) LOG: Appbase = file:///E:/work/wire/M/Tools/Import/bin/Debug/ LOG: Initial PrivatePath = NULL Calling assembly : Ninject, Version=3.2.0.0, Culture=neutral, PublicKeyToken=c7192dc5380945e7.

LOG: This bind starts in default load context. LOG: Using application configuration file: E:\work\wire\MR\Tools\Import\bin\Debug\Import.vshost.exe.Config LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v2.0.50727\config\machine.config. LOG: Post-policy reference: System.Core, Version=2.0.5.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e LOG: Attempting download of new URL file:///E:/work/wire/M/Tools/Import/bin/Debug/System.Core.DLL. LOG: Attempting download of new URL file:///E:/work/wire/M/Tools/Import/bin/Debug/System.Core/System.Core.DLL. LOG: Attempting download of new URL file:///E:/work/wire/M/Tools/Import/bin/Debug/System.Core.EXE. LOG: Attempting download of new URL file:///E:/work/wire/M/Tools/Import/bin/Debug/System.Core/System.Core.EXE.

StackTrace: at Ninject.Planning.Bindings.BindingConfiguration..ctor() at Ninject.Planning.Bindings.Binding..ctor(Type service) at Ninject.Syntax.BindingRoot.BindT at Ninject.KernelBase..ctor(IComponentContainer components, INinjectSettings settings, INinjectModule[] modules) at Ninject.StandardKernel..ctor(INinjectModule[] modules) at Import.ImportBootstrapper.Import(String[] xiArgs) in e:\work\wire\M\Tools\Import\ImportBootstrapper.cs:line 16 InnerException:

我已经把它发挥到了极致 - 我目前正在尝试仅运行以下代码:

using Ninject;

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

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

它也都在源代码控制中,所以我已经将它加载到同事的系统、引用、库、配置等等,是的,它在他们的机器上运行良好。

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

  1. 确保引用的 System.Core 文件存在(确实存在)。

  2. 确保它具有正确的权限。

  3. 确保 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
  4. 在“打开或关闭 Windows 功能”中,删除 .NET Framework 3.5,重新启动,重新安装 .NET 3.5,再次重新启动,尝试运行程序。

  5. 安装了所有可用的 Windows 更新(最初是 .NET 更新,但最终安装了所有更新)。

  6. 试图找出 sfc /scannow 的问题, 无效。

  7. 在 App.config 文件中修改了各种受支持的运行时版本:

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

(有一个,两个,或两者都没有,没有明显的区别)

  1. 确保引用文件明确包含 System.Core ( <Reference Include="System.core" /> )。

  2. 确保项目属性明确设置为 .Net 3.5。

  3. 我还查看了 machine.config 和 web.config 文件。没有任何错误,但我不确定我是否能够确定是否有明显错误,所以我不能说这条研究途径已经关闭。

我现在完全不知所措。我的意思是,无需购买新 PC 并从那里开始。

我做错了什么?

最佳答案

使用新的应用程序池

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

关于c# - 在 .Net 3.5 中使用 Ninject 时 System.Core 的 System.Io.FileNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30537854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com