![](/img/trans.png)
[英]NuGet pack trying to use strange path and can't therefore find the build output: NU5012
[英]Error NU5012 - nuget pack unable to find path (/bin/release/MyProject/bin/release)
我正在嘗試通過運行命令nuget pack -properties Configuration=Release
來更新我的 nuget 包,但這給了我以下錯誤:
無法找到“bin/Release/{project-name}/bin/Release”。 確定項目已經建成
我不太確定為什么它會轉到我的 Release 文件夾,然后繼續轉到另一個 Release 文件夾,因為它不存在? 我在這里很迷茫,我不知道該怎么辦。
TL; 博士
對於新的<Project Sdk="Microsoft.NET.Sdk">
.csproj 文件格式,使用dotnet pack
構建 NuGet 包,即使它們面向 .Net Framework 或項目是多目標的。 從包含您的.csproj
(和可選的.nuspec
)的目錄運行它
dotnet pack MyProject.csproj -c Release
請注意,默認情況下dotnet pack
將輸出.nupkg
在/bin/Release
文件夾中,該文件夾與舊nuget pack
放置它的當前默認文件夾不同。
我建議您不要為新的.csproj
格式創建明確的.nuspec
文件,因為大多數設置都可以在新項目格式的“包”選項卡中進行設置。 但是,如果您確實有.nuspec
,則dotnet pack
還將組合與項目名稱匹配的任何.nuspec
文件,允許從.csproj
設置的版本和元數據中替換$
符號。
更多細節
我也遇到過這個問題 - 在以前的版本中,我通常使用這種方法來打包具有相同名稱的.nuspec
文件的.csproj
,這樣我就可以使用所有的 $ 令牌,如$id$
、 $version$
.
但是,當針對較新的<Project Sdk="Microsoft.NET.Sdk">
csproj 格式嘗試此操作時:
nuget pack {MyProject}.csproj -Prop Configuration=Release
我收到了同樣的錯誤(注意bin\\release
的“重復”):
錯誤 NU5012:無法找到“bin\\Release{MyProject}\\bin\\Release\\”。 確保項目已構建。
如果我嘗試針對包含符號的.nuspec
打包(NuGet 版本:4.7.1.5393)
nuget pack {MyProject}.nuspec -Prop Configuration=Release
我只是收到了無用的消息,因為 nuget 無法自動解析 $ 令牌。
值不能為 null 或空字符串。 參數名稱:值
但是,通過使用 dotnet pack 而不是 nuget
dotnet pack MyProject.csproj -c Release
我到達了我想要的地方,即一個多目標的 NuGet 包,其中.nuspec
的 $ 符號與.csproj
正確同步(您可以通過打開 7zip 中的.nupkg
文件並檢查最終的.nupkg
文件來驗證這一點) .nuspec
包根目錄中的.nuspec
文件)
我在一個多目標項目(同時針對 net452 和 netstandard2.0)上遇到了同樣的問題。
我的修復/黑客是將“TargetFramework=net452”添加到傳遞給 Nuget 的屬性列表中,並手動將 netstandard2.0-output 添加到 .nuspec-file 中的 files-section
希望有人找到更好的解決方案
Rune 的部分答案(設置TargetFramework=net471
NuGet 屬性)
並使用 NuGet 版本 4.9.1(此處的說明: https : //stackoverflow.com/a/53614798/1813219 )
對我來說是一種方式。
其實我只是解決了我的問題。 Nuget 可能找不到隱藏的 dll。 這是我的解決方案:
構建項目;
在visual studio中顯示所有文件,以便您可以看到隱藏的文件,以便您可以看到bin文件夾下的dll;
右鍵單擊,在文件資源管理器中打開文件夾,然后將其復制到當前文件夾讓它們替換/或取消隱藏文件;
再做一次“Nuget Pack”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.