2

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,因爲我不確定是否有必要,而且我也不想引入其他變量。

這裏的任何幫助,非常感謝。非常感謝!

回答

3

以下回答來自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)

相關問題