.net core 在.Net标准1.5和Visual Studio 2017中使用Apache Lucene.Net 4.8.0
在.net core 在.Net标准1.5和Visual Studio 2017中使用Apache Lucene.Net 4.8.0,.net-core,visual-studio-2017,lucene.net,.net-standard,.net-standard-1.5,.net Core,Visual Studio 2017,Lucene.net,.net Standard,.net Standard 1.5,在Lucene.NetGitHub页面(),它说version 4.8.0(GitHub上当前可用的beta版)与.Net标准1.5和.Net 4.5.1框架兼容。太棒了 我做了一个git克隆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
GitHub页面(),它说version 4.8.0
(GitHub上当前可用的beta版)与.Net标准1.5
和.Net 4.5.1
框架兼容。太棒了
我做了一个git克隆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 framework版本
我确信这一定是一个非常简单的解决方案,但我对如何使用.Net标准/.Net核心感到有点困惑
下面是一些可能会引起兴趣的简要说明
- 我的机器上安装了最新的
Dot Net Core SDK
- 我使用
NuGet Package Manager
将NetStandard.Library
安装到所有项目中。(所有项目的参考文件中都会出现带有蓝色和白色图标的NetStandard.Library
。解决方案仍在编译,但我无法像其他.NET Standard
或.NET Core
项目一样深入查看NetStandard.Library
中的组成文件。)
- 我运行了
dotnet restore
,以防可能需要它来提取NetStandard.Library
所需的各种文件
- 解决方案中的所有项目都包含
[projectname].project.json
文件。将NetStandard.Library安装到每个项目后,[projectname].project.json
文件中现在有一个依赖项条目
“依赖项”:{
“NETStandard.Library”:“1.6.1”
}
- 我尝试只更新
Lucene.Net.project.json
文件中的framework
条目,以使用.NETStandard,Version=1.5
,然后只重新编译Lucene.Net
项目。我最后出现了几个编译错误,因此我将条目恢复为其原始值net451
- 没有任何项目的
.csproj
文件。我没有尝试
运行dotnet migrate
,因为我不确定是否有必要,我
不想引入其他变量
非常感谢您的帮助。非常感谢你 以下答案来自dev@lucenenet.apache.org
邮件列表
安东尼
由于NUnit3测试适配器尚未在.NET Core上支持它,因此我们尚未升级到支持Visual Studio 2017的新.csproj格式。目前我们有两个独立的解决方案文件
Lucene.Net.sln-适用于.Net Framework 4.5.1
Lucene.Net.Portable.sln-适用于.Net标准1.5
您可以在Visual Studio 2015中打开Lucene.Net.Portable.sln,但它与VS2017不兼容
VS2015的先决条件:
1.1带SDK预览版2.1构建3177-
Visual Studio 2015(社区或更高版本)及其更新3
NUnit3测试适配器(如果需要运行测试)——
要使其在.NET标准上编译,您可能需要在关闭Visual Studio的情况下运行dotnet restore,然后在Visual Studio中打开Lucene.NET.Portable.sln解决方案进行构建。当VS2015运行恢复时,或者当您从CLI运行dotnet restore时,如果VS2015打开了解决方案,则该操作并不总是成功
一般来说,只有当您想调试Lucene.Net或帮助我们的工作时,才需要此设置。如果您只想构建,可以从项目的根目录通过CLI构建:
建造-pv:4.8.0-BETA0001
它将自动安装所需的SDK,为这两个框架构建DLL,并将它们打包为release\NuGetPackages文件夹中的.nupkg文件。在运行此命令之前,请确保您拥有最新版本的Powershell(仍在尝试解决早期版本的一些问题,但我知道它在5.1.14393.1066中确实有效)。要确定您拥有的Powershell版本,请执行以下操作:
或者,如果您只想引用NuGet软件包,我们在上提供了一个CI提要。在发布投票结果出来之前,我们将在几天后在NuGet上发布一个测试版
谢谢,
沙德·斯托豪格(夜猫子888)这个答案已经有一年多的历史了,我想知道情况是否有所改善。我们现在可以使用VS2017吗?今天是否有与netstandard兼容的Nuget可用?@JoeAudette,我不确定Lucene.NET是否已经完全修复,可以与VS2017一起使用。然而,我知道Lucene.NET项目相对来说是不活跃的,只有很少的活跃贡献者——大部分是Shad Storhaug。事实上,大多数人已经转向使用ElasticSearch,或者在托管或Docker容器中运行它。(我在Docker内部运行ElasticSearch,效果非常好。)ElasticSearch速度非常快,功能非常强大,社区非常活跃。我建议现在通过Lucene.NET使用ElasticSearch。