在.NET Standard 1.5和Visual Studio 2017中使用Apache Lucene.Net 4.8.0

Lucene.Net GitHub页面上(https://github.com/apache/lucenenet),它说version 4.8.0 (GitHub上目前可用的beta版)与.Net Standard 1.5.Net 4.5.1兼容.Net 4.5.1框架。 太棒了!

我做了一个git clone https://github.com/apache/lucenenet.git来拉代码。 该解决方案在Visual Studio 2017打开并编译,在.NET 4.5.1的默认框架下没有错误。 一切都很好。

我真正需要的是编译Lucene.NET 4.8.0以使用.NET Core 1.1.x Lucene.NET 4.8.0 这是事情有点偏离的地方。

当我打开Lucene.Net项目的属性页面(以及许多其他包含的项目)时,它们都引用了默认的.NET 4.5.1 。 似乎没有任何选项可以引用.NET Standard 1.x.NET Core 1.xy而不是标准的.NET Framework版本。

我相信这肯定是一个非常简单的解决方案,但是我对Lucene.Net如何与.Net Standard / .Net Core一起工作感到有点不知所措。

以下是一些可能感兴趣的快速注释。

  • 最新的Dot Net Core SDK安装在我的机器上。
  • 我使用NuGet Package ManagerNetStandard.Library安装到所有项目。 ( NetStandard.Library出现在具有蓝色和白色图标的所有项目的参考文献中,该解决方案仍在编译,但我无法深入查看NetStandard.Library的组成文件,就像我可以使用其他.NET Standard.NET Core项目。)
  • 我运行dotnet restore以防万一可能需要拉动NetStandard.Library所需的各种文件。
  • 解决方案中的所有项目都包含[projectname].project.json文件。 在为每个项目安装NetStandard.Library之后,现在在[projectname].project.json文件中有一个依赖关系条目。

    “dependencies”:{“NETStandard.Library”:“1.6.1”}

  • 我确实尝试更新Lucene.Net.project.json文件中的framework条目以使用.NETStandard,Version=1.5 ,然后仅重新编译Lucene.Net项目。 我结束了几个编译错误,所以我恢复了net451原始值。

  • 没有任何项目的.csproj文件。 我没有尝试运行dotnet migrate因为我不确定是否有必要,我也不想引入其他变量。
  • 任何帮助在这里非常感谢。 非常感谢!


    以下答案来自于dev@lucenenet.apache.org邮件列表中的Shad Storhaug

    安东尼,

    由于NUnit3测试适配器尚不支持.NET Core,因此我们尚未升级到支持Visual Studio 2017的新.csproj格式。目前,我们有2个独立的解决方案文件。

    Lucene.Net.sln - 用于.NET Framework 4.5.1 Lucene.Net.Portable.sln - 用于.NET Standard 1.5

    您可以在Visual Studio 2015中打开Lucene.Net.Portable.sln,但它与VS2017不兼容。

    VS2015的先决条件:

    1.1与SDK预览版2.1构建3177 - https://github.com/dotnet/core/blob/master/release-notes/download-archive.md带更新3的Visual Studio 2015(社区或更高版本)NUnit3测试适配器(如果您需要运行测试) - https://marketplace.visualstudio.com/items?itemName=NUnitDevelopers.NUnit3TestAdapter

    为了让它在.NET Standard上编译,您可能需要在Visual Studio关闭的情况下运行dotnet restore,然后在Visual Studio中打开Lucene.Net.Portable.sln解决方案来构建。 当VS2015运行还原时,或者如果VS2015在从CLI运行dotnet还原时打开解决方案,它并不总是成功。

    一般来说,只有在您想调试Lucene.Net或帮助我们做出贡献时才需要此设置。 如果你只是想构建,你可以从项目的根目录通过CLI构建:

    生成-pv:4.8.0-beta00001

    它将自动安装所需的SDK,为这两个框架构建DLL,并将它们打包为release NuGetPackages文件夹中的.nupkg文件。 在运行此命令之前,请确保您有最新版本的Powershell(仍尝试解决早期版本中的一些问题,但我知道它确实适用于5.1.14393.1066)。 确定您拥有的Powershell版本:https://stackoverflow.com/a/1825807/181087

    或者,如果您只想引用NuGet包,则可以在https://www.myget.org/gallery/lucene-net-ci上找到CI源。 在发布投票结果之前,我们将在几天内在NuGet上提供一个测试版。

    谢谢,Shad Storhaug(NightOwl888)

    链接地址: http://www.djcxy.com/p/29021.html

    上一篇: Using Apache Lucene.Net 4.8.0 with .NET Standard 1.5 and Visual Studio 2017

    下一篇: 'grep' in PowerShell 1.0