我正在用asp.net 5.0中的'項目'與'包'(即Nuget包)引用混雜在一起。我真的希望有人能夠更全面地解釋引用在asp.net 5.0中引入的方式。 'dnu restore'如何確定是否某項是項目引用而不是包引用?'DNU RESTORE'如何確定依賴項是項目引用而不是包引用?
我原以爲一個參照將作爲一個項目,如果項目是在同一目錄拉,但是這顯然不是故事的全部。它看起來似乎可以有更深層次的目錄嵌套,並仍然可以獲取項目引用。
這裏是我常用的項目結構的輪廓:
我有一組項目,其中一些互相引用。有一些名爲TextHelpers和MathHelpers的庫和一個名爲MainProject的項目。這些庫位於名爲Libraries的文件夾中,MainProject位於名爲Tools的文件夾中。這種分離是必要的,因爲庫和工具屬於不同的Git回購:
- 根/庫/ TextHelpers.Project1 - 版本1.0.0- *
- 根/庫/ TextHelpers.Project2 - 版本1.0.0- *
- 根/庫/ MathHelpers.Project1 - 版本1.0.0- *
- 根/庫/ MathHelpers.Project2 - 版本1.0.0- *
- 根/工具/ MainProject - 版本1.0.0- *
通常,MainProject將庫作爲Nuget軟件包的引用從私有的Nuget存儲庫(僅在文件系統上的文件夾)提供庫。
雖然我建MainProject,但是,有時我需要做出改變圖書館的一個項目,有時我想踏入文件,無需使用的NuGet符號服務器。出於這個原因,我想切換到(實時)項目而不是從(靜態)Nuget包中引用。我將如何做到這一點?
多少到目前爲止,我已經發現了這一點:如果我有一個global.json文件,「DNU還原」創建一個帶有「項目」,而不是「一攬子」參考一project.lock.json。這是整個故事嗎?
您可以包含您在解決方案中使用的'global.json'或可選的'nuget.config'嗎?在你的解決方案中沒有'nuget.config',那麼你可以包含'%APPDATA%\ NuGet \ NuGet.Config'的內容。什麼顯示'dnu feeds list'?你是否在命令行中顯式地使用了'dnu restore'而沒有任何參數(比如'--no-cache',這很有趣,請參閱'dnu restore --help'),或者你僅僅使用Visual Studio 2015? – Oleg