将 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
一起工作。
以下是一些您可能感兴趣的快速注释。
- 我的机器上安装了最新的
Dot Net Core SDK
。
- 我将
NetStandard.Library
安装到所有使用 NuGet Package Manager
的项目。 (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 标准 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)
在 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
一起工作。
以下是一些您可能感兴趣的快速注释。
- 我的机器上安装了最新的
Dot Net Core SDK
。 - 我将
NetStandard.Library
安装到所有使用NuGet Package Manager
的项目。 (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 标准 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)