Dot-Net

NuGet 包還原找不到包,沒有源

  • June 17, 2013

我的 TeamCity NuGet 提要上有一個包,由 TeamCity 建構,但依賴的 TC 項目在包還原期間看不到它。

[14:05:02][Exec] E:\TeamCity-BuildAgent\work\62023563850993a7\Web.nuget\nuget.targets(88, 9):找不到包 ‘MarkLogicManager40’ 的版本 ‘1.0.17.0’。

[14:05:02][Exec] E:\TeamCity-BuildAgent\work\62023563850993a7\Web.nuget\nuget.targets(88, 9): 錯誤 MSB3073: 命令 ““E:\TeamCity-BuildAgent\work\ 62023563850993a7\Web.nuget\nuget.exe” 安裝 “E:\TeamCity-BuildAgent\work\62023563850993a7\ProductMvc\packages.config” -source "” -RequireConsent -solutionDir “E:\TeamCity-BuildAgent\work\62023563850993a7\Web \ "” 以程式碼 1 退出。

請注意,sourceNuGet 命令行中的參數為空。這可能是原因嗎?

截至今天,NuGet.targets 有以下方式來指定自定義提要:

<ItemGroup Condition=" '$(PackageSources)' == '' ">
   <!-- Package sources used to restore packages. By default, registered sources under %APPDATA%\NuGet\NuGet.Config will be used -->
   <!-- The official NuGet package source (https://nuget.org/api/v2/) will be excluded if package sources are specified and it does not appear in the list -->

   <PackageSource Include="https://nuget.org/api/v2/" />
   <PackageSource Include="\\MyShare" />
   <PackageSource Include="http://MyServer/" />
</ItemGroup>

另一種選擇是將NuGet.config放在解決方案文件旁邊:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <packageSources>
   <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
   <add key="MyShare" value="\\MyShare" />
   <add key="MyServer" value="http://MyServer" />
 </packageSources>
 <activePackageSource>
   <add key="All" value="(Aggregate source)"  />
 </activePackageSource>
</configuration>

引用自:https://stackoverflow.com/questions/17151709