我首先說我從來沒有管理NuGet軟件包的經驗,即使是最簡單的軟件包也沒有。不過,我打算在我的下一個項目中使用它,其中設計可能依賴於我的問題的答案。在一個解決方案中可以有多個NuGet配置嗎?
爲了更好地理解這一問題,假設我們有以下的項目,所有在一個解決方案:
- 核心
- 富
- 酒吧
兩個富和酒吧取決於核心,但不是 彼此。
因此,我想創建一個NuGet包爲富 + 核心組合,以及一個用於酒吧 + 核心組合,沒有他們分開到不同的解決方案。
這種情況可能嗎?
我首先說我從來沒有管理NuGet軟件包的經驗,即使是最簡單的軟件包也沒有。不過,我打算在我的下一個項目中使用它,其中設計可能依賴於我的問題的答案。在一個解決方案中可以有多個NuGet配置嗎?
爲了更好地理解這一問題,假設我們有以下的項目,所有在一個解決方案:
兩個富和酒吧取決於核心,但不是 彼此。
因此,我想創建一個NuGet包爲富 + 核心組合,以及一個用於酒吧 + 核心組合,沒有他們分開到不同的解決方案。
這種情況可能嗎?
是的,你的情況是可能的。 NuGet包創建不依賴於項目所屬的解決方案。 您可以定義自己的nuspec文件來打包一個包,也可以使用csproj文件來打包。看看:https://docs.microsoft.com/en-us/nuget/tools/nuget-exe-cli-reference
注意:NuGet主要打包.dll文件到一個包。即使使用.csproj文件,它也會查看並從該位置獲取.dll。儘管你可以選擇使用NuSpec文件來存儲源代碼。
對於NuSpec文件:
對於.csproj的文件(我認爲這是你應該用什麼):
nuget pack <nuspecPath | projectPath> [options]
命令 IncludeReferencedProjects
作爲一個選項,併爲projectpath
Foo和Bar獨立。這將創建兩個獨立的NuGet包 滿足您的需求。
您應該使用nuget pack foo.csproj -IncludeReferencedProjects(注意pack命令應用於foo),因爲IncludeReferencedProjects選項還會添加引用項目的依賴關係。可能的重複:https://stackoverflow.com/questions/16173568/build-nuget-package-automatically-including-referenced-dependencies –