使用Apache 4.8.0 Lucene.Net用.NET标准的1.5和Visual Studio 2017年
在Lucene.Net
GitHub的页面(https://github.com/apache/lucenenet),它说,version 4.8.0
(目前在GitHub上可用的测试版)与.Net Standard 1.5
和.Net 4.5.1
框架兼容。太棒了!使用Apache 4.8.0 Lucene.Net用.NET标准的1.5和Visual Studio 2017年
我做了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
出现在了蓝色和白色图标的所有项目的引用。该解决方案还编译,但我无法向下钻取并查看NetStandard.Library
组成文件,我可以与其他.NET Standard
或.NET Core
项目。) - 我跑了
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
,因为我不确定是否有必要,而且我也不想引入其他变量。
这里的任何帮助,非常感谢。非常感谢!
以下回答来自Shad Storhaug
,邮件列表为[email protected]
。
安东尼,
由于NUnit3测试适配器尚不支持.NET的核心,我们还没有升级到支持的Visual Studio 2017年。其时新的.csproj格式,我们有2个独立的解决方案文件。
Lucene.Net.sln - 为.NET框架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 - 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上编译,您可能需要在Visual Studio关闭的情况下运行dotnet恢复,然后在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包,我们有一个CI饲料可在https://www.myget.org/gallery/lucene-net-ci。在发布投票结果之前,我们将在几天内在NuGet上提供一个测试版。
谢谢, Shad Storhaug(NightOwl888)