【发布时间】:2014-04-25 22:41:08
【问题描述】:
VS 2013 无法恢复包 - 包内容未实现 - 尽管 VS/nuget 似乎认为它确实成功地恢复了包。
如果我手动卸载并重新安装该软件包的相同版本,它可以正常工作。
一个简单的复制可以是downloaded as a zip。这个repro有一个
单一解决方案
单个项目与一个
单个文件,“packages.config”,指定一个
单个包“breeze.edmbuilder -version 1.0.4”,包含单个文件edmbuilder.cs
单个文件夹“App_Start”只包含任何内容
.csproj 说它应该有“edmbuilder.cs”,这是可以的,因为
当包恢复时,它会有“edmbuilder.cs”。
当我构建时,VS 报告说“edmbuilder.cs”丢失了……而且确实丢失了。
但是,软件包已下载;我知道这一点,因为构建会生成一个包含“Breeze.EdmBuilder.1.0.4”的“packages”文件夹,其中我看到“edmbuilder.cs”存在并且位于正确的位置。
当我发出命令install-package breeze.edmbuilder -version 1.0.4 时,nuget 会报告
'Breeze.EdmBuilder 1.0.4' 已安装。 NugetRestoreFail 已经引用了“Breeze.EdmBuilder 1.0.4”。
这个包 AFAIK 没有任何问题。因为当我uninstall-package breeze.edmbuilder 然后用install-package breeze.edmbuilder -version 1.0.4 重新安装时,安装工作正常,丢失的 edmbuilder.cs 出现在它所属的“App_Start”文件夹中。
失败是可重复的就地。
- 关闭解决方案
- 从“App_Start”中删除 edmbuilder.cs
- 删除“包”文件夹
- 可选择删除 .suo 和 bin 和 obj 目录
- 重新打开解决方案并重新构建
您将获得相同的失败行为......以及手动卸载和重新安装的相同功能。
FWIW,从 .csproj 中删除对
无论我做什么,我都必须手动卸载并重新安装包。
WTF!
ps:我正在使用 VS 2013 Update 2 RC。我怀疑“RC”是否重要,因为这个问题引起了客户的注意。你永远不知道。
p.p.s:这与构建失败无关,我不在乎这个解决方案永远不会运行。你在这里看到的是一个可以工作的真实应用程序的精简版本。唯一的问题是“为什么没有恢复文件?”
【问题讨论】:
标签: nuget nuget-package-restore