我从Gitub克隆了项目。我的解决方案有6个项目,每个项目都有packages.config文件(包含软件包及其版本的列表),但这些软件包不会被恢复。
方法我已尝试恢复nuget包:
Tools -> Options -> Nuget Package Manger -> General
并选中了两个选项。web.config
文件中写下以下代码: <packageRestore>
<!-- The 'enabled' key is True when the "Allow NuGet to download missing packages" checkbox is set.
Clearing the box sets this to False, disabling command-line, automatic, and MSBuild-Integrated restore. -->
<add key="enabled" value="True" />
</packageRestore>
此项目的已恢复软件包,但其他项目没有web.config文件。
%AppData%\NuGet\NuGet.Config
中添加了以下代码: <configuration>
<packageRestore>
<!-- The 'automatic' key is set to True when the "Automatically check for missing packages during
build in Visual Studio" checkbox is set. Clearing the box sets this to False and disables
automatic restore. -->
<add key="automatic" value="True" />
</packageRestore>
</configuration>
(source)
Update-Package –reinstall
它为所有包裹说了这个: Package 'Abp.2.1.2' already exists in project 'TempABP5.Migrator'
Successfully installed 'Abp 2.1.2' to TempABP5.Migrator
在NuGet.Config
文件旁边创建了一个.sln
文件,其中包含:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://www.nuget.org/api/v2/" />
<add key="aspnetwebstacknightlyrelease" value="https://www.myget.org/f/aspnetwebstacknightlyrelease/" />
</packageSources>
</configuration>
(source)
.csproj
文件中删除以下代码进行测试: <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
</Target>
(source)
但我仍然无法恢复包,项目无法构建。如何恢复丢失的包?
更新
我删除了bin / obj文件夹中的所有数据,然后清理解决方案然后构建但是同样的错误..
然后我再次运行命令Update-Package –reinstall
以确保包已经存在且结果为:
答案 0 :(得分:0)
安装失败。回滚......包装&#34; A&#34;不存在于 项目。包&#34; A&#34;已存在于文件夹中。
那是因为&#34;包&#34; git版本控制下的文件夹。你应该使用.gitignore文件让Git忽略packages文件夹的内容。
有关详细信息,请参阅Omitting NuGet packages in source control systems。
希望这可以帮到你。