【问题标题】:Adding private Nuget package feeds to Visual Studio Online将私有 Nuget 包源添加到 Visual Studio Online
【发布时间】:2014-09-03 13:46:39
【问题描述】:

我有一个私有 NuGet 包源正在运行,我用它在我的项目之间共享某些功能和扩展。它在 Visual Studio 中运行良好,但最近我开始为我在 Visual Studio Online 上的一个项目设置持续集成构建,似乎 VSO 看不到我的私人提要。

我正在使用新的包还原方法 - 涉及在 VS 选项中设置“允许 NuGet 下载丢失的包”复选框。我没有在解决方案上下文菜单中使用“启用 NuGet 包还原”选项,因为这实际上是 the old way of doing it 并在其他地方引起问题。

我也没有做任何修改我的项目文件的事情;我正在使用自定义构建定义(使用 XAML 工作流的东西),因此我可以通过从构建定义编辑器下的“构建过程模板”下拉列表中选择它来将其应用于我的任何项目。我这样做是因为我添加了各种其他步骤,包括一些构建后脚本,以促进自动部署到托管服务器;其中一些步骤有点复杂,因此将它们保留在构建过程中意味着我只需设置一次。

那么,如果不使用将 nuget.exe 放入解决方案文件夹的旧上下文菜单解决方案,并且不弄乱项目本身,我如何获得 VSO 的构建以从我的私人提要中恢复包?

构建工作流模板有一个活动“NuGetRestore”,它可以接受命令行参数。我添加了以下内容:

"-source https://www.nuget.org/api/v2/ http://www.example.com/nuget"

但这似乎并没有什么不同。此活动还有一个字段用于“指定需要恢复其 NuGet 包的解决方案”,我刚刚将其设置为定义构建时设置的 ProjectsToBuild 变量。我没有从 nuget.exe 收到任何错误(至少,我看不到任何错误),但构建失败。有趣的是,它说相关的命名空间不存在,而不是无法解析引用。有什么想法吗?

【问题讨论】:

标签: nuget azure-devops build-definition nuget-package-restore


【解决方案1】:

我相信您需要做的是添加解决方案级别的 NuGet.config 文件。 NuGet 配置文件的链接方式与 web.config 非常相似。你可以找到文档here

NuGet 首先从默认位置加载 NuGet.config,然后加载从当前驱动器的根目录开始到当前目录结束的任何名为 NuGet.config 的文件。

它看起来类似于:

    <?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageRestore>
        <!-- Allow NuGet to download missing packages -->
        <add key="enabled" value="True" />
        <!-- Automatically check for missing packages during build in Visual Studio -->
        <add key="automatic" value="True" />
    </packageRestore>
    <packageSources>
        <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
        <add key="PrivateNugetName" value="http://your.nuget.server.com/nuget" />
    </packageSources>
    <disabledPackageSources />
    <activePackageSource>
        <add key="All" value="(Aggregate source)" />
    </activePackageSource>
</configuration>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    • 2021-02-10
    • 1970-01-01
    • 2017-06-17
    • 1970-01-01
    • 2016-10-27
    相关资源
    最近更新 更多