Visual Studio 2013忽略nuget.config

Mas*_*iti 21 nuget visual-studio-2013 nuget-package-restore

我有一个使用Nuget的Visual Studio 2013项目.我在解决方案的根目录中有一个packages.config文件,定义了我们想要安装的Nuget包.我还在解决方案的根目录中有一个nuget.config文件,定义了packageSources,以及一些packageSourceCredentials.其中一个包源是我们公司的私人回购.

如果我在解决方案的根目录中打开命令提示符,并键入nuget restore它工作正常,并能够访问我们的私人存储库以拉入我们使用的一些自定义包.

但是,如果我在Visual Studio 2013中打开解决方案并构建它,则在尝试下载我们的自定义程序包时会失败,因为它显然忽略了我们的nuget.config文件,因此不知道我们的私有nuget repo.

我可以进入工具>选项并添加我们的私人仓库,但我们正在尝试在解决方案本身内做所有事情,这样它就可以开箱即用而无需自定义配置.

为什么VS 2013会忽略nuget.config?

Dav*_*sie 18

编辑NuGet.config后重新启动Visual Studio!

我注意到VS2012在重新启动之前没有接受对NuGet.config的更改.


Jos*_*lin 3

我创建了一个具有以下目录结构的新项目。

-ConsoleApplication1
    -ConsoleApplication1
    -ConsoleApplication1.sln
    -nuget.config
Run Code Online (Sandbox Code Playgroud)

在添加 nuget.config 之前,我在使用“管理解决方案的 Nuget 包”功能时看不到任何私人存储库。当我添加 nuget.config 时,我能够在对话框窗口中看到我的新存储库。我还可以使用 nuget Restore 和 VS 2013 中的构建来恢复我的包。

我的 nuget.config 看起来像这样

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageRestore>
        <add key="enabled" value="True" />
        <add key="automatic" value="True" />
    </packageRestore>
    <packageSources>
        <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
        <add key="MyRepo" value="http://XX.XX.XXX.XX:81/host/repo" />
    </packageSources>
    <activePackageSource>
        <add key="All" value="(Aggregate source)" />
    </activePackageSource>
</configuration>
Run Code Online (Sandbox Code Playgroud)

根据您描述的问题,我唯一能想到的是,您之前可能尝试在使用最新的包恢复方法之前从项目中禁用 Nuget Package Restore。如果您不同时从每个项目恢复炸弹包,则可能会留下一些逻辑,这可能会干扰新方法。例如,如果您从解决方案中删除了 .nuget 文件夹,则 nuget.config 文件可能仍位于其中,从而导致冲突。