使用Docker构建.NET Framework项目时遇NU1301错误求助
解决Docker构建.NET Framework项目时的NU1301错误
排查容器网络连通性
构建镜像时加上--network host参数,让容器复用主机网络环境,测试能否正常访问NuGet源:docker build --network host -t your-project-image .也可以在Dockerfile里加一段网络测试命令提前验证:
Windows容器:RUN ping api.nuget.org -n 3Linux容器:
RUN ping api.nuget.org -c 3替换NuGet源为国内镜像
在项目根目录新建NuGet.Config文件,内容如下:<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <add key="azure-nuget" value="https://nuget.cdn.azure.cn/v3/index.json" protocolVersion="3" /> </packageSources> </configuration>然后在Dockerfile里把这个文件复制到容器的NuGet配置目录:
Windows容器:COPY NuGet.Config C:\Users\ContainerUser\AppData\Roaming\NuGet\Linux容器:
COPY NuGet.Config /root/.nuget/NuGet/检查并更新基础镜像
确保Dockerfile里使用的是官方维护的.NET Framework SDK镜像,比如mcr.microsoft.com/dotnet/framework/sdk:4.8,避免用过于老旧的镜像导致协议不兼容。手动指定源进行还原
如果上面的方法没生效,直接在还原命令里指定NuGet源:
用dotnet restore的情况:RUN dotnet restore YourProject.csproj --source https://nuget.cdn.azure.cn/v3/index.json用
msbuild还原的情况:RUN msbuild YourProject.csproj /t:Restore /p:RestoreSources=https://nuget.cdn.azure.cn/v3/index.json
内容的提问来源于stack exchange,提问作者Dilmurod Egamberdiyev
相关产品推荐
相关产品推荐

