我有一个使用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包.
构建时,恢复对话框会在从包源开始下载时弹出,这是正确的:

我可以看到包正在恢复到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
我有一些关于Jenkins和NuGet包恢复的问题.
我正在尝试做的是在jenkins上构建解决方案(它工作得非常好).我已为解决方案启用了包还原,生成包含NuGet.exe,NuGet.Config和NuGet.targets的.nuget文件夹.
在Jenkins,我正在我们服务器上的私有包源中创建一些项目作为NuGet包.我在其他项目中使用这些包,应该在jenkins自己的基础上构建.
VS了解私有包源,它在全局NuGet.Config文件(AppData下的文件)中配置,并且未被禁用(默认情况下).
现在,当我尝试构建一个需要来自私有包源的包的解决方案时,构建失败,因为jenkins不知道它,因此-source在恢复未被替换为jenkins的包时提交空参数不知道自定义源.
到目前为止我尝试过的
我已经知道将私有源添加到解决方案NuGet.Config-或NuGet.Targets-file Package-Source将解决问题,但这意味着,我必须为我想要使用Jenkins构建的每个解决方案这样做.
我还通过将源代码添加到文件中的package-source标签,甚至使其成为活动源,在AppData和ProgramData中使用了配置文件,但是这也没有帮助.
cource,提交包将是一种解决方法,但这不是理想的结果,因为我们想忽略scm中的包.
基本上,我想知道是否有办法让Jenkins不断了解私有包源,或者操纵开发人员机器上的NuGet安装,以便生成NuGet.targets包含私有包源的-file. .另一个可能的修复是msbuild的参数,我不知道.
任何帮助是极大的赞赏!
当我尝试编译我的程序时,我收到以下错误:
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
在我的一些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
我有多个项目引用相同的NuGet包.当我得到最新的代码时,我意识到其中一个项目有一个更新的package.config,并且还更新了对该包提供的Dll的引用.
现在,我还在其他项目上更新了package.config,希望一旦我对NuGet引擎进行升级,就会看到并获取新的DLL.好吧,它没有发生.在那之后,我尝试了一些事情,但没有一个工作:
另外,有趣的是,当我去管理Nuget Packages并查看我需要新DLL的包时,它表明它已经是新版本,我不需要升级它.
有什么方法可以让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
我们正在使用VSTS托管构建服务器构建 CD 管道。恢复Nuget需要3分钟以上。这时间太长了。
我怎样才能让它运行得更快?我们可以使用任何类型的缓存系统吗?
nuget nuget-package nuget-package-restore azure-devops azure-artifacts
我有一个混合的环境,一些开发人员正在开发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
我们正在Visual Studio 2015中开发多个解决方案.这些解决方案共享一些需要nuget包的核心项目.当从一个解决方案添加nuget包并稍后由另一个解决方案打开时,无法解析nuget引用.
文件夹结构如下:
当我打开nuget包SharedProject1时SolutionA,dll参考显示了路径packages folder A.当SolutionB在另一台计算机被打开,SharedProject1具有基准误差,因为packages folder A不存在.
我已阅读此解决方案:当一些项目被列入多种解决方案设置为所有解决方案的常见的NuGet包文件夹,但是这个因为没有解决问题repositoryPath的关键.nuget /不与应用NuGet.config文件Visual Studio 2015和Nuget 3.4.3
nuget ×10
c# ×3
.net ×1
azure-devops ×1
dll ×1
jenkins ×1
msbuild ×1
msbuild-task ×1
nuget-server ×1