c# - .NET 标准 + .NET 框架 : could not load file or assembly 'Ninject'

标签 c# .net ninject .net-standard

情况

我有以下解决方案结构:

 - solution
     - "WPF Client" PROJECT[.NET Framework 4.6.1] 
       (has ref to: "Core Logic" PROJECT, "Service Provider" PROJECT)
    
     - "Core Logic" PROJECT[.NET Framework 4.6.1] 
       (has ref to: "Service Provider" PROJECT)
    
     - "Service Provider" PROJECT[.NET Standard 2.0] 
       (has nuget: "Ninject")

我有以下类(class)

服务提供商项目中的IoC.cs

public static class IoC
{
    private static readonly IKernel mKernel;

    static IoC()
    {
        mKernel = new StandardKernel();

        Setup();
    }

    private static void Setup()
    {
        mKernel.Bind<IInput>().To<Input>();
    }

    public static T Get<T>()
    {
        return mKernel.Get<T>();
    }
}
核心逻辑项目中的

MyViewModel.cs

public sealed class MyViewModel
{
    ...
    public void MyViewModelMethod()
    {
        var a = IoC.Get<IInput>(); 
    }
    ...
}

WPF 客户端项目中的MyView.xaml.cs

public partial class MyView : UserControl
{
    public MyView()
    {
        InitializeComponent();
    
        var viewModel = new MyViewModel();
        viewModel.MyViewModelMethod();
    }

}

问题

每当我尝试运行我的项目时,它都会抛出以下错误:

could not load file or assembly 'Ninject'

编辑

我认为这与 ninject 没有任何关系...它是一个 .net 标准 + .net 4.6.1 问题。

我这样想的原因是:首先我尝试了其他 IoC 容器,它们抛出了相同的错误消息。但它并没有结束......每当我在我的 .NET Standard 项目上安装任何 NuGet 包时,它似乎无法将其程序集加载到我的客户端项目中(.net 4.6 .1)

问题是:这个问题有解决办法吗?

最佳答案

找到解决方案!

您必须将 packages.config 迁移到 .csproj 文件中。

更多详情查找here

关于c# - .NET 标准 + .NET 框架 : could not load file or assembly 'Ninject' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61981864/

相关文章:

具有复杂类型集合的 C# odata 操作失败

c# - 添加并显示从实体计算并自动更新的元素

c# - 如何设计可重复使用的上下文菜单?

c# - 了解为什么我们使用控制反转容器进行单元测试

c# - 使用 Ninject 填充 Log4Net 依赖

c# - 如何修复 Activator.CreateInstance 因 MissingMethodException "Constructor on type not found"而失败?

c# - 为什么sql server查询有返回结果而linq查询没有

c# - 如何从另一个类的 listBox1_SelectedIndexChanged 事件中获取值?

c# - "await Task.Yield()"及其替代品

c# - 命名空间重构后"Server Error in '/' Application. Sequence contains no elements"