【发布时间】:2019-09-09 09:22:09
【问题描述】:
我尝试使用 NuGet CLI 构建一个包。 我运行下一个命令:
.\nuget.exe pack D:\projects\CloudStorage.Client.csproj -OutputDirectory D:\packages -Build -Symbols -Properties Configuration=Release;
但总是得到下一个错误:
错误 NU5012:无法找到“Autofac.4.9.4.nupkg”。确保项目已构建。
但是解决方案已经建立。
我正在使用最新版本的 NuGet (v5.2.0)
在 bin/Release 文件夹中存在 Autofac,或者我无法正确理解错过的“.nupkg”和当前程序集之间的区别?
对于提到的项目,还有CloudStorage.Client.nuspec文件
当我在现在需要 SemVer 2.0.0 包的解决方案中更新一个 nuget 包 (https://www.nuget.org/packages/Z.EntityFramework.Extensions/) 时检测到此问题...为了构建它,我将 Nuget 升级到 4.3.0+ 版本。结果如上。
项目nuspec内容:
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>CloudStorage.Client</id>
<version>$version$</version>
<description>CloudStorage Client</description>
<authors>MyTeam</authors>
<tags>$branch$</tags>
</metadata>
</package>
UPD
我已经创建了测试项目,其中包括 Autofac 4.9.4 并尝试为其构建包。它已成功创建。从控制台我看到 Autofac 的所有 3 个文件都被复制到 bin 文件夹 .pdb、.dll 和 .xml 文件中......而在我的“问题”项目中只复制了 .dll。
【问题讨论】:
-
您好,您的项目使用哪种 nuget 管理格式? Packages.config 还是 PackageReference?我可以在 packages.config 格式项目中重现相同的问题(打包失败时构建成功),这是因为 nuget.exe 在路径
SolutionFolder\packages\Autofac.4.9.4中找不到Autofac.4.9.4.nupkg。您可以检查该路径中是否存在 xx.nupkg 文件,如果不存在,请运行 nuget restore 以检查是否有帮助:) -
@LanceLi-MSFT 嗨!是的,它是 packages.config,是的,我在
SolutionFolder\packages\Autofac.4.9.4中看到了Autofac.4.9.4.nupkg。将尝试删除旧版本...也许它可以以某种方式帮助 -
我建议你可以删除bin中的release文件夹,然后再次运行nuget pack命令,可能会显示一些警告来帮助定位这个问题。对我来说,我的 xx.csproj 文件中的提示路径有问题,但是由于上次构建成功,当我使用该 nuget pack 命令时,尽管打包失败,它总是成功构建而没有警告。在我删除 bin 文件夹并运行 nuget pack 命令进行干净构建后,出现警告以指示真正的问题。
-
@LanceLi-MSFT 刚刚做到了。看到包是从解决方案包文件夹中复制的,并且 Autofac 有正确的版本。但是同样的错误仍然存在...(注意:Autofac 只复制了 .dll 而不是 nupkg...也许这是一个问题)
-
@LanceLi-MSFT,当我在现在需要 SemVer 2.0.0 包的解决方案中更新一个 nuget 包(nuget.org/packages/Z.EntityFramework.Extensions)时检测到此问题...为了构建它,我需要有 Nuget 4.3.0+。我更新了 nuget 的版本 - 结果在上面
标签: .net visual-studio nuget autofac nuget-package