gpt4 book ai didi

nuget - 错误NU5012-nuget包无法找到路径(/bin/release/MyProject/bin/release)

转载 作者:行者123 更新时间:2023-12-04 02:11:30 32 4
gpt4 key购买 nike

我正在尝试通过运行nuget pack -properties Configuration=Release命令来更新我的nuget软件包,但这会给我以下错误:

Unable to find 'bin/Release/{project-name}/bin/Release'. Mae sure the project has been built



我不太确定为什么要转到我的“发布”文件夹,然后继续转到另一个“发布”文件夹,因为该文件夹不存在?我在这里迷路了,我不确定该怎么办。

最佳答案

TL; DR

对于新的<Project Sdk="Microsoft.NET.Sdk"> .csproj文件格式,即使它们以.Net Framework为目标或项目为多目标,也请使用 dotnet pack 来构建NuGet软件包。从包含.csproj(以及可选的.nuspec)的目录中运行此命令

dotnet pack MyProject.csproj -c Release

请注意,默认情况下 dotnet pack将输出 .nupkg放置在 /bin/Release文件夹中,这与较旧的 nuget pack放置它的当前默认文件夹不同。

我建议您不要为新的 .nuspec格式创建显式的 .csproj文件,因为大多数设置都可以在新的Project格式的“包”标签中设置。但是,如果您确实有 .nuspec,那么 dotnet pack还将合并与项目名称匹配的任何 .nuspec文件,从而可以从 $中设置的版本和元数据中替换 .csproj符号。

详细信息

我也遇到了这个问题-在以前的版本中,我通常使用 this approach来打包带有同名 .csproj文件的 .nuspec,以便我可以使用所有$ token ,例如 $id$$version$

但是,当尝试针对较新的 <Project Sdk="Microsoft.NET.Sdk"> csproj格式执行此操作时:
nuget pack {MyProject}.csproj -Prop Configuration=Release

我收到了相同的错误(请注意 bin\release的“重复”):

Error NU5012: Unable to find 'bin\Release{MyProject}\bin\Release\'. Make sure the project has been built.



如果我尝试对包含符号的 .nuspec打包(NuGet版本:4.7.1.5393)
nuget pack {MyProject}.nuspec -Prop Configuration=Release

我刚得到 unhelpful message是因为nuget无法自动解析$ token 。

Value cannot be null or an empty string. Parameter name: value



但是,通过使用dotnet pack而不是nuget
dotnet pack MyProject.csproj -c Release

我到达了想要的位置,即一个多目标NuGet包,其中 .nuspec中的$符号已与 .csproj正确同步(您可以通过在7zip中打开 .nupkg文件并在Windows 7中检查最终的 .nuspec文件来进行验证。包根)

关于nuget - 错误NU5012-nuget包无法找到路径(/bin/release/MyProject/bin/release),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45815070/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com