Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 在visual studio中更新解决方案级别的nuget包_Visual Studio_Powershell_Nuget_Nuget Package - Fatal编程技术网

Visual studio 在visual studio中更新解决方案级别的nuget包

Visual studio 在visual studio中更新解决方案级别的nuget包,visual-studio,powershell,nuget,nuget-package,Visual Studio,Powershell,Nuget,Nuget Package,我试图弄清楚a)我是否以正确的方式进行了这项工作,b)如何更新解决方案级别的nuget包 核心问题是,当在解决方案级别(而不是在任何特定项目中)安装包并尝试对其进行更新时,它不会删除旧的引用。它只是添加一个新的包引用,并导入两个版本。这通常意味着(与powershell模块的工作方式有关)较早的powershell模块会覆盖较新的powershell模块 所以我要做的就是卸载这个软件包并重新安装它,这将获得更新的版本。似乎效率低下 此外,我似乎无法从控制台安装或卸载解决方案级别的软件包。我必须使

我试图弄清楚a)我是否以正确的方式进行了这项工作,b)如何更新解决方案级别的nuget包

核心问题是,当在解决方案级别(而不是在任何特定项目中)安装包并尝试对其进行更新时,它不会删除旧的引用。它只是添加一个新的包引用,并导入两个版本。这通常意味着(与powershell模块的工作方式有关)较早的powershell模块会覆盖较新的powershell模块

所以我要做的就是卸载这个软件包并重新安装它,这将获得更新的版本。似乎效率低下

此外,我似乎无法从控制台安装或卸载解决方案级别的软件包。我必须使用Manage Nuget Packages实用程序来实现这一点,我讨厌使用它

以下是我正在做的一些背景知识,如果有帮助的话:

我在公司建立了一个系统,使用解决方案级别的nuget软件包向解决方案中添加自定义powershell脚本模块,以及我编写的一些更通用的脚本解决方案(如删除TFS工作项或更改文件系统上以及代码中的项目名称)

因此,一个项目可能有DataServiceUtilities包,另一个项目可能有FrontEndUtilities包


那么,如何在不添加两个引用的情况下更新这些包呢?解决方案级别的操作可以在Package Manager控制台中完成吗?该控制台始终默认为以项目为目标?

似乎其中一些操作来自Package Manager GUI工具中的错误,以及通常的Nuget

Package Manager GUI工具无法正确处理解决方案级别包的更新。但是,如果从Package manager控制台运行Update Package,它将正确卸载/重新安装解决方案级别的软件包

至于从命令行安装,如果软件包只有一个tools文件夹,并且没有依赖项,则可以从命令行运行install,然后在解决方案中安装,并忽略默认项目

但是,到目前为止(Nuget 2.8),Nuget中有一个bug,导致它将依赖于其他解决方案级别包的解决方案级别包视为项目级别包。它显然已经存在了大约一年,他们声称它将在VS 2015年修复。您可以在此处看到错误:

这意味着您当前无法创建具有任何依赖项的解决方案级别包。请注意,根据文件规定,这是合法的。希望明年能修好

*更新

只是一个快速更新。在VS 2015中,他们似乎已弃用(或者更准确地说,已删除)解决方案级别/仅使用工具的软件包。在一些人的强烈抗议之后,他们也决定在未来的版本中重新实现它们,但他们这样做可能需要一段时间

可在此处找到重新实现该功能的进展:

有关如何解决缺少的功能的讨论,请参见以下内容: