在 Windows 服务器(没有 Visual studio)上为 CI/CD 构建 ASP.NET 核心

Build ASP.NET Core on Windows Server (without Visual studio) for CI/CD

这不是的重复,虽然目标相同,但错误不同。

我想在没有安装 Visual Studio 的机器上构建我的 ASP.NET Core。

我需要这个,因为我正在设置 GitLab CI/CD。

只是为了测试目的,我打开控制台,在 .sln 文件所在的文件夹中执行 dotnet restoredotnet build。在这两种情况下我都收到以下错误:

C:\Program Files\dotnet\sdk.1.4\NuGet.targets(103,5): error : The local source 'C:\Users\matjaz.cof\.dotnet\NuGetFallbackFolder' doesn't exist.

完整日志:

C:\GitLab-Runner\buildscab42e4[=14=]\web\app>dotnet restore
  Restoring packages for C:\GitLab-Runner\buildscab42e4[=14=]\web\app\App.Web.Core\App.Web.Core.csproj...
  Restoring packages for C:\GitLab-Runner\buildscab42e4[=14=]\web\app\App.Web.Library.Tests\App.Web.Library.Tests.csproj...
  Restoring packages for C:\GitLab-Runner\buildscab42e4[=14=]\web\app\App.Web.Core.Tests\App.Web.Core.Tests.csproj...
  Restoring packages for C:\GitLab-Runner\buildscab42e4[=14=]\web\app\App.Web.Library\App.Web.Library.csproj...
  Restoring packages for C:\GitLab-Runner\buildscab42e4[=14=]\web\app\App.Web.Hosting\App.Web.Hosting.csproj...
  Restore completed in 93,72 ms for C:\GitLab-Runner\buildscab42e4[=14=]\web\app\App.Web.Hosting\App.Web.Hosting.csproj.
C:\Program Files\dotnet\sdk.1.4\NuGet.targets(103,5): error : The local source 'C:\Users\matjaz.cof\.dotnet\NuGetFallbackFolder' doesn't exist. [C:\GitLab-Runner\buildscab42e4[=14=]\web\app\App.Web.sln]

提供的线程中的答案说我需要的只是我安装的 Dotnet SDK:

C:\GitLab-Runner\buildscab42e4[=15=]\web\app>dotnet --version
2.1.4

Windows 服务器上确实不存在该文件夹,但它存在于我的开发机器上(安装了 VS 2017)。
我在 Windows 服务器上搜索整个 c: 文件夹 NuGetFallbackFolder 并在 c:\Program Files\dotnet\sdk\NuGetFallbackFolder.

中找到它

为什么 dotnet restore/build 在用户名下搜索文件夹,我需要更改什么?

已编辑: (@MartinUllrich)

这是c:\Users\matjaz.cof\AppData\Roaming\NuGet\NuGet.Config的内容:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
  </packageSources>
</configuration>

在 .NET Core 的 2.0 预览版期间使用了此后备文件夹路径。

您可以从 C:\Users\ matjaz.cof\AppData\Roaming\NuGet\NuGet.Config 文件中删除引用此目录的包源。

我只是通过将 c:\Program Files\dotnet\sdk\NuGetFallbackFolder\ 应对 c:\Users\matjaz.cof\.dotnet\NuGetFallbackFolder\ 来解决它。

我想不出别的了。也许卸载旧的 .NET Core 运行时和 SDK 也能解决问题。