您需要检查包Netsdk1064, Package microsoft.csharp是否成功复制到C:\users\username\.nuget\packages folder,因为它错误地找不到这个包。
作为解决方法,您可以创建一个 nuget.config 文件并提交到您的存储库。并在 nuget.config 文件的 packageSources 元素下添加所有包所在的本地目录。请参见下面的示例。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="local" value="C:\users\username\.nuget\packages" />
</packageSources>
</configuration>
查看 nuget.config 的 Package source sections 了解更多信息。
然后您可以使用 nuget restore 任务来恢复包。并设置nugetConfigPath 指向上面创建的nuget.config。
- task: NuGetCommand@2
inputs:
command: 'restore'
restoreSolution: 'SmartFuel.sln'
feedsToUse: 'config'
nugetConfigPath: 'nuget.config'
如果 nuget 还原任务无法从本地包源还原。请检查管道中使用的 nuget 版本。如果 nuget 版本是 4.1.0 或更早版本。您需要使用NuGet Tool Installer task 来使用更高版本的nuget。请参阅this thread 了解更多信息。
另一个可能的解决方法是编辑 .csproj 文件并使用 hintpath 手动将引用的包指向本地文件夹中的 .dll。例如下面:
<ItemGroup>
<Reference Include="DependPackage">
<HintPath>..\..\..\..\..\..\package\DependPackage.dll</HintPath>
</Reference>
</ItemGroup>