如何在公司代理/防火墙后面使用.NET Core CLI?

时间:2018-09-27 13:47:23

标签: .net-core nuget

我已经下载并提取了.NET Core SDK压缩二进制文件,并将其添加到PATH中。

我可以使用dotnet new console创建一个新的控制台项目,但是当我尝试使用dotnet add package DocumentFormat.OpenXml添加依赖项时,出现以下错误:

Writing C:\Users\boobsbr\AppData\Local\Temp\tmp2C7B.tmp
info : Adding PackageReference for package 'DocumentFormat.OpenXml' into project 'C:\projects\test\test.csproj'.
log  : Restoring packages for C:\projects\test\test.csproj...
error: Unable to load the service index for source https://api.nuget.org/v3/index.json.
error:   No such host is known

我已经在多个地方阅读过我需要为NuGet.config添加一些配置以便设置HTTPS代理的信息。有人建议使用nuget.exe config -Set来设置值,但是二进制分发文件夹中不存在可执行文件,而且我还读到dotnet.exe使用NuGet DLL而不是调用{{ 1}}可执行文件。

因此,我着手编辑位于nuget.exe的文件。有人建议只设置代理URL,然后从某些系统配置中读取用户和密码,因此我将以下行添加到配置文件中:

C:\Users\boobsbr\AppData\Roaming\NuGet\NuGet.Config

这是我尝试添加软件包后收到的消息:

<add key="https_proxy" value="http://proxy_url:8080" />

好的,所以我尝试按照其他人的建议添加用户名,并且应该从某些系统中自动获取密码:

Writing C:\Users\boobsbr\AppData\Local\Temp\tmpA7AF.tmp
info : Adding PackageReference for package 'DocumentFormat.OpenXml' into project 'C:\projects\test\test.csproj'.
log  : Restoring packages for C:\projects\test\test.csproj...
info :   GET http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0
log  : Retrying 'FindPackagesByIdAsyncCore' for source 'http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0'.
log  : No such host is known
info :   GET http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0
log  : Retrying 'FindPackagesByIdAsyncCore' for source 'http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0'.
log  : No such host is known
info :   GET http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0
error: Failed to retrieve information about 'DocumentFormat.OpenXml' from remote source 'http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0'.
error:   No such host is known

这是失败消息:

<add key="https_proxy" value="http://proxy_url:8080" />
<add key="https_proxy.user" value="boobsbr" />

好的,然后我尝试添加明文密码:

Writing C:\Users\boobsbr\AppData\Local\Temp\tmp839E.tmp
info : Adding PackageReference for package 'DocumentFormat.OpenXml' into project 'C:\projects\test\test.csproj'.
log  : Restoring packages for C:\projects\test\test.csproj...
info :   GET http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0
log  : Retrying 'FindPackagesByIdAsyncCore' for source 'http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0'.
log  : No such host is known
info :   GET http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0
log  : Retrying 'FindPackagesByIdAsyncCore' for source 'http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0'.
log  : No such host is known
info :   GET http://proxy_url:8080/FindPackagesById()?id='DocumentFormat.OpenXml'&semVerLevel=2.0.0
error: The local source 'C:\Users\boobsbr\AppData\Roaming\NuGet\boobsbr' doesn't exist.

我得到了与上一次尝试相同的信息。我也尝试使用<add key="https_proxy" value="http://proxy_url:8080" /> <add key="https_proxy.user" value="boobsbr" /> <add key="https_proxy.password" value="my_pass" /> 代替http_proxy,但无济于事。

有人说密码必须是base64加密的,但是唯一的方法似乎是通过https_proxy,而我没有nuget.exe config -Set

我知道user:pass:url:port值可以工作,因为我使用它们来使NPM与NPM注册表进行对话。

也许我不擅长搜索,但是我找不到清晰的文档来描述如何为一个非常常见的用例设置简单的配置。

那么,如何配置.NET Core CLI以使用公司代理/防火墙?

Windwows 10版本:nuget.exe

.NET Core SDK版本:15063

0 个答案:

没有答案