我有一個nuget包,它取決於其他幾個(例如Newtonsoft.Json
)。 包不打算作爲一個類庫來使用它只是增加了自定義的MSBuild行動,使封裝的結構看起來像這樣:從nuget包引用nuget包
-package CustomBuildAction
|-lib/net45/CustomBuildAction.dll
|-build/CustomBuildAction.targets
當我安裝包CustomBuildAction.targets
正確的的csproj referensed但是當我試圖運行生成我得到一個錯誤:
「CustomBuildAction」任務無法從程序集「path to dll/CustomBuildAction.dll」加載。無法加載文件或程序集「Newtonsoft.Json.dll,Version = ...」或其某個依賴項。
我已將Newtonsoft.Json.dll
納入nuspec文件作爲包依賴項,nuget將其顯示爲依賴項,但MSBuild無法解析它。對我來說,它看起來像問題是,我從.targets文件夾的包使用相對路徑(相對於建立文件夾)參照CustomBuildAction.dll
,即:
../lib/net45/CustomBuildAction.dll
但是這個DLL文件不打算放置到它可以找到所有依賴的構建輸出文件夾中。 我該如何解決這個問題?我是否應該將依賴關係包含在軟件包中,還是有另一種解決方法?
如果項目僅由自定義MSBuild操作使用,該項目是否需要引用CustomBuildAction.dll?我只是將它放在.targets文件旁邊的build目錄中,然後從那裏導入它。然後在構建目錄中也有Newtonsoft.Json.dll。 –
@Matt Ward不,不需要將它作爲參考添加到項目中。將嘗試將dll移入生成文件夾,有趣的想法 – Leo