簡體   English   中英

從nuget包引用nuget包

[英]Referencing nuget packages from nuget package

我有一個nuget包,它依賴於其他幾個包(例如Newtonsoft.Json )。 程序包不打算用作類庫,它僅添加自定義MSBuild操作,因此程序包的結構如下所示:

-package CustomBuildAction
|-lib/net45/CustomBuildAction.dll
|-build/CustomBuildAction.targets

當我安裝包CustomBuildAction.targets可以從csproj中正確引用它,但是當我嘗試運行build時,出現錯誤消息:

無法從程序集“ dll / CustomBuildAction.dll的路徑”加載“ CustomBuildAction”任務。 無法加載文件或程序集“ Newtonsoft.Json.dll,Version = ...”或其依賴項之一。

我已經將Newtonsoft.Json.dll作為軟件包依賴項包含在nuspec文件中,nuget將其顯示為依賴項,但是MSBuild無法解決它。 對我來說,問題似乎出在我使用包文件夾中的相對路徑(相對於構建文件夾)從.targets文件引用CustomBuildAction.dll

../lib/net45/CustomBuildAction.dll

但是,此dll並非旨在放置在可以找到其所有依賴項的生成輸出文件夾中。 我該如何解決這個問題? 我應該在包中包含依賴項,還是有另一種解決方案?

MSBuild將從包含任務程序集的文件夾中解析任務依賴性。 不幸的是,這意味着您需要在CustomBuildAction.dll文件旁邊的NuGet包中包含Newtonsoft.Json.dll。

為防止程序集最終出現在生成輸出中,請將程序集放入程序包中的其他文件夾中。 例如,tools /,只要它不在lib中,就不會被視為可供參考的程序集。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM