在.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 Manager
将NetStandard.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