构建服务器在内部存储库上找不到包

时间:2015-01-06 18:09:12

标签: tfsbuild nuget-package-restore

我正在尝试设置由TFS Build 2013构建的解决方案。该解决方案使用nuget.org和内部公司repo的NuGet包。在构建服务器上构建时,它会从nuget.org查找包,但不能从我的内部存储库中找到包。我在解决方案(在.nuget文件夹下)中有一个NuGet.Config文件,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <solution>
    <add key="disableSourceControlIntegration" value="true" />
  </solution>
  <packageSources>
    <add key="NuGet official package source" value="https://nuget.org/api/v2/" />
    <add key="My Internal Package Source value="\\myserver\NuGetPackages" />
  </packageSources>
  <activePackageSource>
    <add key="All" value="(Aggregate source)"  />
  </activePackageSource>
</configuration>

我得到的错误信息是:

  

无法找到版本&#39; 1.0.0&#39;包&#39; MyPackageName&#39;。

如何让它在我的内部存储库中获取软件包需要做什么?

1 个答案:

答案 0 :(得分:0)

我找到了问题的答案。我discovered你可以在%ProgramData%\ NuGet 中放置一个名为 NuGetDefault.config 的文件,nuget.exe会把它拿起来。所以我创建了这个文件,并将我的两个来源放入其中。 (这可能不适合希望不同项目使用不同来源的人。)

使用Process Monitor,我发现nuget.exe在尝试以格式&#34; \\ myserver \ NuGetPackages&#34;访问我的本地存储库时收到路径未找到错误。幸运的是,我的内部nuget服务器也是安装TFS Build的服务器。所以我只是把路径改成了&#34; D:\ folder \ nugetfolder&#34;。

我在网络服务帐户下运行构建,因此我必须授予该帐户访问该目录的权限。 (现在我考虑一下,这可能也是我无法通过&#34; \\ myserver \ NuGetPackages&#34;格式)访问回购的原因。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="NuGet official package source" value="https://nuget.org/api/v2/" />
    <add key="PD Package Source" value="D:\NuGetPackages" />
  </packageSources>
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
</configuration>