标签: nuget-package-restore

Visual Studio 2013忽略nuget.config

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

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

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

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

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

nuget visual-studio-2013 nuget-package-restore

21
推荐指数
2
解决办法
6274
查看次数

自动包还原:无法找到包的版本

我们正在使用改进的自动包恢复过程来恢复丢失的NuGet包.

构建时,恢复对话框会在从包源开始下载时弹出,这是正确的:

恢复对话框

我可以看到包正在恢复到packages文件夹中,但它没有完成恢复所有这些.我收到以下类型的错误:

Error   10  NuGet Package restore failed for project MyProject: System.InvalidOperationException: Unable to find version '6.0.1' of package 'Newtonsoft.Json'.
   at NuGet.PackageHelper.ResolvePackage(IPackageRepository repository, String packageId, SemanticVersion version)
   at NuGet.VsEvents.PackageRestorer.RestorePackage(PackageReference package)
   at NuGet.VsEvents.PackageRestorer.RestorePackages(String packageReferenceFileFullPath, IFileSystem fileSystem)
   at NuGet.VsEvents.PackageRestorer.PackageRestore(ProjectPackageReferenceFile projectPackageReferenceFile).
Run Code Online (Sandbox Code Playgroud)

这可能是因为我有多个包源吗?

在此输入图像描述

例如,NuGet可能会在我们的私有包源中搜索'Newtonsoft.Json',而不是在nuget.org源代码中搜索.

.nuget/NuGet.config文件中:

<configuration>
  <packageSources>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
    <add key="private" value="http://privatePackageSource.com/nuget" />
  </packageSources>
  <solution>
    <add key="disableSourceControlIntegration" value="true" />
  </solution>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我们正在使用Visual Studio 2013和NuGet 2.8.5.

编辑:

使用Fiddler,我已经确认NuGet确实在不正确的源中搜索包.它从我的私有存储库请求以下包.

我也阅读了这篇文章并将该activePackageSource部分添加到NuGet.config文件中:

<configuration> …
Run Code Online (Sandbox Code Playgroud)

nuget nuget-package nuget-server visual-studio-2013 nuget-package-restore

21
推荐指数
2
解决办法
4万
查看次数

让Jenkins了解自定义NuGet包源

我有一些关于Jenkins和NuGet包恢复的问题.

我正在尝试做的是在jenkins上构建解决方案(它工作得非常好).我已为解决方案启用了包还原,生成包含NuGet.exe,NuGet.Config和NuGet.targets的.nuget文件夹.

在Jenkins,我正在我们服务器上的私有包源中创建一些项目作为NuGet包.我在其他项目中使用这些包,应该在jenkins自己的基础上构建.

VS了解私有包源,它在全局NuGet.Config文件(AppData下的文件)中配置,并且未被禁用(默认情况下).

现在,当我尝试构建一个需要来自私有包源的包的解决方案时,构建失败,因为jenkins不知道它,因此-source在恢复未被替换为jenkins的包时提交空参数不知道自定义源.

到目前为止我尝试过的

  1. 我已经知道将私有源添加到解决方案NuGet.Config-或NuGet.Targets-file Package-Source将解决问题,但这意味着,我必须为我想要使用Jenkins构建的每个解决方案这样做.

  2. 我还通过将源代码添加到文件中的package-source标签,甚至使其成为活动源,在AppData和ProgramData中使用了配置文件,但是这也没有帮助.

  3. cource,提交包将是一种解决方法,但这不是理想的结果,因为我们想忽略scm中的包.

基本上,我想知道是否有办法让Jenkins不断了解私有包源,或者操纵开发人员机器上的NuGet安装,以便生成NuGet.targets包含私有包源的-file. .另一个可能的修复是msbuild的参数,我不知道.

任何帮助是极大的赞赏!

msbuild msbuild-task nuget jenkins nuget-package-restore

20
推荐指数
2
解决办法
1万
查看次数

NuGet有缺少包的问题,​​如何恢复?

当我尝试编译我的程序时,我收到以下错误:

This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=317567.    
Run Code Online (Sandbox Code Playgroud)

现在,当我右键单击解决方案并按下

All packages are already installed and there is nothing to restore.
Run Code Online (Sandbox Code Playgroud)

我尝试手动重新安装每个没有解决问题的包,我尝试重新安装NuGet,但这也没有帮助,我甚至尝试重新安装visual studio.

我也试过从tfs文件夹移动包文件夹来覆盖我的包文件夹但是没有解决任何问题.我也尝试用这个包丢失来重新加载它们,这也没有解决问题.

有谁知道如何恢复nuget包?

c# visual-studio nuget nuget-package-restore visual-studio-2015

18
推荐指数
3
解决办法
1万
查看次数

什么是EnsureNuGetPackageBuildImports目标?

在我的一些csproj文件中,我有这个,但有些不:

  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
  </Target>
Run Code Online (Sandbox Code Playgroud)

究竟是什么,为什么我需要它?没有它,我的其他项目正在恢复他们的包.

我正在使用VS2013和NuGet 2.8.

visual-studio nuget nuget-package visual-studio-2013 nuget-package-restore

16
推荐指数
1
解决办法
8920
查看次数

package.config更新不会更新引用

我有多个项目引用相同的NuGet包.当我得到最新的代码时,我意识到其中一个项目有一个更新的package.config,并且还更新了对该包提供的Dll的引用.

现在,我还在其他项目上更新了package.config,希望一旦我对NuGet引擎进行升级,就会看到并获取新的DLL.好吧,它没有发生.在那之后,我尝试了一些事情,但没有一个工作:

  1. 删除旧版本的DLL,然后执行还原包
  2. 删除packages文件夹,重新启动我的VS 2015并恢复软件包

另外,有趣的是,当我去管理Nuget Packages并查看我需要新DLL的包时,它表明它已经是新版本,我不需要升级它.

有什么方法可以让NuGet引擎升级这些包吗?

c# dll nuget nuget-package nuget-package-restore

16
推荐指数
1
解决办法
8181
查看次数

尝试在新解决方案中启用NuGet包还原时出错

尝试在刚刚创建的新解决方案中启用包还原时出现错误.VS2012中的错误是:

NuGet包管理器

配置解决方案以在构建时还原NuGet包时发生错误

无法从路径'NuGet.Build.2.7.0.npkg'读取包.

我尝试在VS2010中打开解决方案来解决问题,我在尝试启用包恢复时也遇到错误,但消息不同:

NuGet包管理器

配置解决方案以在构建时还原NuGet包时发生错误

存档文件的大小不能为0.

我尝试创建一个新的解决方案,但得到了相同的结果.

然后我尝试在VS2012更新3上进行修复并重新启动.仍然遇到问题.

我还扫描了文件夹,项目和解决方案文件中的任何NuGet或.nupkg,但没有任何内容.

那么我怎样才能让这个功能再次运行?我最后一次使用它是在大约一个星期前,我不记得我从那时起改变了什么.我卸载了大约一周前安装的VS Power Tools软件包,但这也没有解决问题.

更新

我在这里按照"删除"说明并使用我已经拥有的项目作为模板来手动启用包恢复.但是,我仍在寻找更好的解决方案,因为这是我经常使用的功能.

我也尝试从visual studio卸载并重新安装NuGet,但我仍然遇到同样的问题.如果内存服务正常,最近有一个NuGet更新(是否有VS扩展安装的日志,所以我可以检查?).

visual-studio-2010 visual-studio nuget visual-studio-2012 nuget-package-restore

15
推荐指数
1
解决办法
2万
查看次数

如何使 Nuget 恢复工作更快?

我们正在使用VSTS托管构建服务器构建 CD 管道。恢复Nuget需要3分钟以上。这时间太长了。

我怎样才能让它运行得更快?我们可以使用任何类型的缓存系统吗?

nuget nuget-package nuget-package-restore azure-devops azure-artifacts

15
推荐指数
1
解决办法
5728
查看次数

如何在Visual Studio 2013中使用NuGet 3.0?

我有一个混合的环境,一些开发人员正在开发Visual Studio 2013,其他人正在研究2015年.在我们从Visual Studio 2015更新引用的NuGet包之前,一切正常.

现在,当尝试从Visual Studio 2013恢复NuGet包时,我看到以下错误:

项目Foo的NuGet包恢复失败:'System.Linq 4.0.0'包需要NuGet客户端版本'3.0'或更高版本,但当前的NuGet版本是'2.8.60723.765'..

显然,Visual Studio 2013没有NuGet版本3.x.

是否有继续使用Visual Studio 2013和2015的解决方案?

nuget visual-studio-2013 nuget-package-restore visual-studio-2015

14
推荐指数
2
解决办法
1万
查看次数

如何在Visual Studio 2015中为多个解决方案和项目设置单个Nuget包文件夹

我们正在Visual Studio 2015中开发多个解决方案.这些解决方案共享一些需要nuget包的核心项目.当从一个解决方案添加nuget包并稍后由另一个解决方案打开时,无法解析nuget引用.

文件夹结构如下:

  • 代码库
    • SharedProjects
      • SharedProject1
    • SolutionA
      • WebProjectA
      • 包文件夹A.
    • SolutionB
      • WebProjectB
      • 包文件夹B.

当我打开nuget包SharedProject1SolutionA,dll参考显示了路径packages folder A.当SolutionB在另一台计算机被打开,SharedProject1具有基准误差,因为packages folder A不存在.

我已阅读此解决方案:当一些项目被列入多种解决方案设置为所有解决方案的常见的NuGet包文件夹,但是这个因为没有解决问题repositoryPath的关键.nu​​get /不与应用NuGet.config文件Visual Studio 2015Nuget 3.4.3

.net c# nuget nuget-package-restore visual-studio-2015

14
推荐指数
1
解决办法
4145
查看次数