.NET标准+.NET框架:无法加载文件或程序集'Ninject'。

问题描述 投票:2回答:1

状况

我的解决方案结构如下。

 - 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")

我有以下的类

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>(); 
    }
    ...
}

我的视图.xaml.csWPF客户端项目

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

}

问题

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

无法加载文件或程序集'Ninject'。

编辑

我认为这与ninject无关......这是一个.net标准+.net 4.6.1的问题。

我这样想的原因是:首先我尝试了其他的 IoC 容器,它们也抛出了同样的错误信息。但这还没有结束......每当我在我的软件上安装任何NuGet包时,我都会看到这样的错误信息。.NET标准 它似乎无法将其汇编加载到我的客户项目中(.net 4.6.1)

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

c# .net ninject .net-standard
1个回答
2
投票

找到解决方案了!

你必须迁移你的 packages.config 进入您的 .csproj 文件。

更多详情请查询 此处.

© www.soinside.com 2019 - 2024. All rights reserved.