簡體   English   中英

錯誤 NU5012 - nuget pack 無法找到路徑 (/bin/release/MyProject/bin/release)

[英]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.

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