2017-07-17 190 views
0

我有一個包含多個項目的解決方案。項目結構如下。Nuget在解決方案中打包所有子項目

/root 
A.sln 
A.nuspec 
/ProjectB 
    projectB.csprj 
    projectB.nuspec 
/ProjectC 
    projectC.csprj 
    projectC.nuspec 

我有幾個問題。

1-如果我在根文件夾中運行nuget pack A.nuspec會發生什麼情況。有沒有辦法在解決方案中打包所有項目?

2-當我發送代碼TFS,與「NuGet Packager」,我可以使用正則表達式打包所有子項目,如下所示。有沒有辦法在本地環境中使用這樣的正則表達式。

enter image description here

3-是否有可能創建一個nupkg包含兩個子工程。

4-是否有可能創建一個nupkg包含多個DLL。我可以將項目的所有依賴項都放入nupkg中嗎?

回答

0

1-如果我在根文件夾中運行nuget pack A.nuspec會發生什麼情況。有沒有辦法在解決方案中打包所有項目?

我不相信有一種方法通過使用.nupsec打包解決方案中的所有項目。這是因爲創建包的過程始終始於創建描述包內容的.nuspec包清單文件。這個清單驅動包的創建以及在將安裝到項目中時的使用情況,而不是解決方案。並且ID和版本在.nupsec中必須是唯一的,所以我們不能使用唯一的ID和版本來指定多個項目。

2-當我發送代碼TFS和「NuGet Packager」時,我可以使用正則表達式打包所有子項目,如下所示。有沒有辦法在本地環境中使用這樣的正則表達式。

答案是否定的。我已經在本地機器上測試了它,通配符在命令行中被視爲非法字符

3-是否可以創建一個nupkg包含兩個子項目。

如果我正確理解你,你的意思是子項目是參考項目?如果是的話,答案是肯定的。您可以使用選項「IncludeReferencedProjects」將引用的項目包含爲依賴項或包的一部分。詳情請參閱this document

4-是否有可能創建一個nupkg包含多個dll。我可以將項目的所有依賴項都放入nupkg中嗎?

當然可以。你可以參考我已經回答的another thread瞭解更多細節。如果要將項目的所有依賴項都放入nupkg中,則可以使用<dependencies>將所有依賴項包含在.nuspec中。

<dependencies> 
     <dependency id="Newtonsoft.Json" version="9.0" /> 
    </dependencies> 
相關問題