使用共享库与.NET Core

5

我编写了一个开源库,LINQ to Twitter,使用共享库来最小化部署工件并处理特定于平台的功能。我想支持.NET Core,并认为最快的方法是引用共享库。添加引用对话框没有显示共享库,所以我尝试了project.json:

{
  "version": "1.0.0-*",

  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "LinqToTwitter.Shared": "*",
    "LinqToTwitter.Shared.net": "*"
  },

  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    }
  }
}

我尝试了几种版本的组合,但都没有成功。错误消息中包含以下内容:

无法解析依赖项 LinqToTwitter.Shared >= *。

接下来,我打开了*.xproj文件,并将以下导入内容粘贴到项目部分:

<Import Project="..\LinqToTwitter.Shared\LinqToTwitter.Shared.projitems"
        Label="Shared" />
<Import 
  Project="..\LinqToTwitter.Shared.net\LinqToTwitter.Shared.net.projitems" 
  Label="Shared" />

在VS中不显示引用,元数据中也没有任何内容,因此无法从引用.NET Core应用程序的控制台应用程序中引用任何共享库类型。


共享库需要是NuGet包或xproj项目,才能在您的project.json中引用它们。 - Nate Barbettini
2个回答

0
好消息 - Visual Studio 2017 现在允许 .NET Core 库项目引用共享项目。

0

如果库文件在同一个解决方案中,您可以使用target:project进行引用,类似于:

{
  "version": "1.0.0-*",

  "dependencies": {
    "NETStandard.Library": "1.6.0",
    "LinqToTwitter.Shared": {"target": "project"},
    "LinqToTwitter.Shared.net": {"target": "project"}
  },

  "frameworks": {
    "netstandard1.6": {
      "imports": "dnxcore50"
    }
  }
}

我尝试了一下,但是收到了一个错误信息:无法解析依赖项LinqToTwitter.Shared。对于LinqToTwitter.Shared.net也是如此。 - Joe Mayo
这两个库是使用 .NET Core 开发的吗? - LP13
你可能想看一下这篇文章《在多个框架上运行.NET Core应用程序》https://blogs.msdn.microsoft.com/cesardelatorre/2016/06/28/running-net-core-apps-on-multiple-frameworks-and-what-the-target-framework-monikers-tfms-are-about/ - LP13
那些是共享库。我不知道是否可以创建.NET Core共享库。谢谢文章链接。 - Joe Mayo
如果我没记错的话,在 .Net Core 中无法引用经典的 .Net 库。 - LP13
1
看起来我应该从Shared转向Standard - 参考这个链接:https://blogs.msdn.microsoft.com/dotnet/2016/09/26/introducing-net-standard/ - Joe Mayo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接