将 Apache Lucene.Net 4.8.0 与 .NET Standard 1.5 和 Visual Studio 2017 一起使用

Using Apache Lucene.Net 4.8.0 with .NET Standard 1.5 and Visual Studio 2017

Lucene.Net GitHub 页面 (https://github.com/apache/lucenenet) 上,它表示 version 4.8.0(目前在 GitHub 上可用的测试版)与.Net Standard 1.5.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 项目(以及许多其他包含的项目)的属性页面时,它们都引用默认值 .NET 4.5.1。似乎没有任何选项可以引用 .NET Standard 1.x.NET Core 1.x.y 而不是标准的 .NET 框架版本。

我确信这一定是一个非常简单的修复,但我有点不知道如何让 Lucene.Net.Net Standard / .Net Core 一起工作。

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

非常感谢这里的任何帮助。非常感谢!

以下回答来自 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 标准 1.5

可以在Visual Studio2015中打开Lucene.Net.Portable.sln,但是不兼容VS2017

VS2015 的先决条件:

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

要使其在 .NET Standard 上编译,您可能需要 运行 dotnet restore 并关闭 Visual Studio,然后在 Visual Studio 中打开 Lucene.Net.Portable.sln 解决方案以建造。当 VS2015 运行 恢复时或者当您从 CLI 运行 dotnet 恢复时 VS2015 打开解决方案时,它并不总是成功。

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

构建-pv:4.8.0-beta00001

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

或者,如果您只想引用 NuGet 包,我们在 https://www.myget.org/gallery/lucene-net-ci 提供 CI 提要。等待发布投票的结果,我们将在几天内在 NuGet 上提供测试版。

谢谢, 沙德斯托豪格 (NightOwl888)