我在一台计算机上签入一个项目,在另一台计算机上签出,发现NuGet安装的二进制文件丢失了。我也可以将它们签入源代码控制,但看起来有一个更好的解决方案:
http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
我遵循了这些说明,现在在我的.csproj文件中有了一个应该有的.nuget
文件夹,并有了以下条目:
<RestorePackages>true</RestorePackages>
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
然而,当我重新构建我的解决方案时,丢失的包并没有恢复。
我遗漏了什么?如何诊断此问题?
发布于 2014-09-11 10:20:26
您必须从以下方式中选择一种:
在所有解决方案的项目中按其名称重新安装程序包:
Update-Package –reinstall <packageName>
按其名称重新安装包,并忽略其在所有解决方案的项目中的依赖关系:
Update-Package –reinstall <packageName> -ignoreDependencies
在工程中按照包的名称重新安装:
Update-Package –reinstall <packageName> <projectName>
重新安装特定工程中的所有包:
Update-Package -reinstall -ProjectName <projectName>
重新安装解决方案中的所有软件包:
Update-Package -reinstall
发布于 2017-03-28 01:09:53
VS 2017
Tools>NuGet包缓存管理器Settings>General单击"Clear All NuGet Manager>Package (S)“
发布于 2012-07-13 03:53:22
我在两种情况下遇到了这个问题。
首先,当我尝试使用msbuild.exe从命令行构建我的解决方案时。其次,当我尝试使用TFS和CI在构建服务器上构建sln和包含项目时。
我收到错误,声称缺少引用。在检查我的本地build目录和TFS服务器时,我看到没有创建/packages文件夹,也没有复制nuget包。按照亚历山大答案中列出的说明,http://nuget.codeplex.com/workitem/1879对我也不起作用。
我已经通过VS2010启用了恢复包,并且我看到构建只能在VS2010中工作。同样,使用msbuild的变通方法可能是完全无效的,但对于我的环境来说,这使所有工作都从本地命令行构建开始,也从fails.My中的CI构建开始。
我进入.\nuget并在.nuget\NuGet.targets文件中更改了这一行:
发自:
<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" -o "$(PackagesDir)"</RestoreCommand>
to:(注意,变量两边没有引号)
<RestoreCommand>$(NuGetCommand) install $(PackagesConfig) -source $(PackageSources) -o $(PackagesDir)</RestoreCommand>
我知道如果我的目录中有空格,这将失败,但是我的目录中没有空格,所以这个变通方法让我的构建暂时完成了successfully...for。
我要说的是,在构建中打开诊断级别日志记录将有助于显示msbuild正在执行的命令。这就是导致我暂时破解目标文件的原因。
https://stackoverflow.com/questions/9011889
复制相似问题