2

我将 myget 用于我的 Nuget 包。因为我使用的是带有凭据的私人提要,所以我关注了这个博客:http ://www.xavierdecoster.com/deploying-to-azure-web-sites-using-nuget-package-restore-from-a-secured-feed

我的本地(项目)nuget.config(位于解决方案中的 .nuget 文件夹中)如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <solution>
    <add key="disableSourceControlIntegration" value="true" />
  </solution>
  <packageSource>
    <clear />

    <add key="EcareMyGet" value="https://www.myget.org/F/rai69/"></add>

  </packageSource>
  <activePackageSource>
    <add key="EcareMyGet" value="https://www.myget.org/F/rai69/"></add>
  </activePackageSource>
  <packageSourceCredentials>
    <EcareMyGet>
      <add key="Username" value="www.myget.org/raimond" />
      <add key="ClearTextPassword" value="wachtwoord" />
    </EcareMyGet>
  </packageSourceCredentials>
</configuration> 

在我的 nuget.targets 中,我根据博客更改了恢复命令:

<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)"   -NonInteractive   $(RequireConsentSwitch) -solutionDir "$(SolutionDir)\" -Verbosity detailed </RestoreCommand>

尽管如此,buildserver 仍然使用 nuget.org 作为源:

NuGet.exe sources
  Registered Sources:

    1.  https://nuget.org/api/v2/ [Enabled]
        https://nuget.org/api/v2/

谁知道解决方法?

4

2 回答 2

2

答:将 nuget.config 文件中的 <packageSource> 替换为 <packageSources>

以下是导致答案的对话......

可以肯定的是,您是否还阅读了禁用 -RequireConsent 开关的部分?

<RequireRestoreConsent Condition=" '$(RequireRestoreConsent)' != 'false' ">
false
</RequireRestoreConsent>

此外,请确保您没有在 MSBuild PackageSources 元素中配置它,默认情况下如下所示(未配置包源):

<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="https://my-nuget-source/nuget/" />
    -->
</ItemGroup>

如果您这样做了,那不是问题,您能否分享有关输出日志的更多详细信息,以便我可以确定问题是什么时候引起的以及由什么命令引起的?

于 2013-06-24T14:07:37.197 回答
0

您写道您使用"My local (project) nuget.config",这让我相信您的项目文件夹中有nuget.config文件。

您可以在此处阅读有关NuGet 配置文件的信息。在那里你会看到“NuGet 首先从默认位置加载 NuGet.config,然后从当前驱动器的根目录开始加载任何名为 NuGet.config 的文件,并以当前目录结束。” .

这意味着,NuGet 将在文件夹层次结构中查找配置,从根目录一直到nuget.exe的位置,该位置通常位于解决方案根目录中的.nuget文件夹下。这意味着它永远不会在您的解决方案中查看项目文件夹。因此,您可以尝试将nuget.config移动到解决方案文件夹,然后查看它是否被正确读取。

于 2013-06-24T13:51:11.450 回答