C# netcoreapp1.0找不到net461特定的包

C# netcoreapp1.0找不到net461特定的包,c#,asp.net-core,C#,Asp.net Core,我正在使用VS代码构建一个net core应用程序。我需要使用不受支持的NuGet包,因此将我的project.json文件的框架部分更改为以下内容: "frameworks": { "net461": { "dependencies": { "ScrapySharp": "2.6.2" } }, "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": {

我正在使用VS代码构建一个net core应用程序。我需要使用不受支持的NuGet包,因此将我的project.json文件的框架部分更改为以下内容:

"frameworks": {
  "net461": {
    "dependencies": {
      "ScrapySharp": "2.6.2"
    }
  },
  "netcoreapp1.0": {
    "dependencies": {
      "Microsoft.NETCore.App": {
        "type": "platform",
        "version": "1.0.0"
      }
    }
  }
}
恢复项目似乎可行,并且安装了软件包ScrapySharp。但是,当我使用该软件包时,netcoreapp和net461似乎都在寻找它。当net461正确查找并引用它时,netcoreapp抛出以下错误:

The type or namespace name 'ScrapySharp' could not be found

我能做些什么来解决这个问题吗?

如果软件包仅适用于两个框架中的一个框架,那么您应该修改您的程序代码,在netcoreapp下编译时不要使用此软件包。实际上,在netcoreapp下编译时,您将丢失应用程序的某些功能

如果这适合您,请使用如下预处理器指令:

public void function DoSomething()
{
#if NET461 then
    // do something with ScrapySharp
#else
    // Say to your user that this feature is not available
    throw new Exception("This feature is not available on this platform");
#endif
}

如何在net461下编译?具体来说,是什么告诉vs代码使用这两个框架来搜索包的?当您在project.json中放置两个框架时,您的项目将被编译两次——每个框架一次。dotnet/msbuild为您实现这一魔力。您将收到两个输出文件夹,其中包含两个几乎相同的文件,但其中一个是为一个框架编译的,另一个是为另一个框架编译的引用libs。明白了。因此,无法运行使用一个框架编译的版本,只能使用另一个框架引用的包?不。这是两个不同的框架,它们不能互换。它们的lib甚至包含一些不同的类/接口。