使用本地Nuget Server的本地Nuget包构建VSTS

时间:2016-01-28 16:33:31

标签: asp.net nuget nuget-server azure-devops

是否有人在VSTS中使用本地(非面向公众的)Nuget服务器作为Feed构建ASPNET5应用程序?遵循这些步骤:https://msdn.microsoft.com/Library/vs/alm/Build/azure/deploy-aspnet5我可以看到脚本恢复,但它总是在我的本地包上出错。我确信我正在配置错误。这就是我的尝试:

  1. 向我的解决方案添加带有arg的Nuget安装程序任务和NuGet参数constexpr(我尝试不包含Nuget参数,并在我的解决方案的根目录中包含Nuget.config)。但是,构建遇到一个异常,说它无法找到本地URL:nugete.exe -source "https://www.nuget.org/api/v2/;http://mynugetserver"。好的,我明白了,但我是否认识到本地网址?
  2. 经过研究,我认为我必须使用VSTS的Package Manager Extension。所以我成功地将我的打包加载到那里,但当我在我的Nuget.config中包含该包URL时,我从System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The remote name could not be resolved: 'mydomain'获得了一堆未经授权的响应,因为它也试图查看VSTS包URL。这就是我现在所处的位置。
  3. 当前Nuget.Config

    PreBuild.ps1

    更新

    如果我在VSTS上使用软件包管理器,则这些警告/例外似乎都来自本地供稿。不确定为什么它使用所有外部包的本地提要

        <?xml version="1.0" encoding="utf-8"?>
        <configuration>
          <packageRestore>
            <add key="enabled" value="True" />
            <add key="automatic" value="True" />
          </packageRestore>
          <config>
            <!--DO I NEED TO INCLUDE MY PROXY INFOR HERE I AM BEHIND ONE AT WORK-->
          </config>
          <bindingRedirects>
            <add key="skip" value="False" />
          </bindingRedirects>
          <activePackageSource>
            <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
          </activePackageSource>
          <packageSources>
            <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
            <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
            <add key="Local" value="https://vstsurl/DefaultCollection/_packaging/Local/nuget/v3/index.json" />
    <add key="Company Nuget Gallery v2" value="http://mydomain/nuget/api/v2" />
          </packageSources>
        </configuration>
    

1 个答案:

答案 0 :(得分:1)

如果您使用的是由VSTS托管的构建代理,并且您的nuget服务器位于本地(无法从Internet访问),则程序包还原将失败,因为构建代理无法找到您的nuget服务器。您可以配置您的nuget服务器,以便可以从Internet访问它,或者在您的nuget服务器的同一内部网中部署您自己的构建代理。