0

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

<?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>

我得到的错误信息是:

找不到包“MyPackageName”的版本“1.0.0”。

我需要做什么才能让它在我的内部存储库中获取包?

4

1 回答 1

0

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

使用 Process Monitor,我发现 nuget.exe 在尝试以“\\myserver\NuGetPackages”格式访问我的本地存储库时遇到路径未找到错误。对我来说幸运的是,我的内部 nuget 服务器也是安装了 TFS Build 的服务器。所以我只是将路径更改为“D:\folder\nugetfolder”。

我正在网络服务帐户下运行构建,因此我必须授予该帐户访问该目录的权限。(现在我想起来了,这可能也是我无法通过“\\myserver\NuGetPackages”格式访问存储库的原因)。

<?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>
于 2015-01-08T21:23:49.870 回答