安装 Nuget 包错误“路径不是合法形式”
Posted
技术标签:
【中文标题】安装 Nuget 包错误“路径不是合法形式”【英文标题】:Install Nuget Package error "The path is not of a legal form" 【发布时间】:2015-10-19 04:56:17 【问题描述】:尝试安装 NuGet 包时 RestSharp 我收到错误 The path is not of a legal form
并且该包未安装。
使用Install-Package RestSharp
从控制台安装时,有很多以下消息:
项目 C:\Users\myName\Source\Workspaces\Project\Solution\packages\RestSharp.105.1.0\lib\net35\RestSharp.dll 在您的工作区中找不到,或者您没有权限 访问它。
新发布的 Visual Studio 2015(社区版)会出现这种情况。
【问题讨论】:
这看起来像 NuGet 中的 bug 已报告。 感谢您查找此内容。我什么也没找到。我想我有点太急于升级到 VS 2015 ......我会继续研究它,也许我会找到解决方法。 我有同样的问题,我也有 TFS。巧合?我想不是。看我的回答:D 当我在报告为麻烦制造者的软件包(包括 RestSharp)上尝试它时,效果很好。那个错误信息看起来很假,我的水晶球说真正的问题是路径太长并且超过259个字符。 我自己也遇到过这个问题;但今天早上我更新了 nuget 包管理器,它似乎对我来说工作正常。现在是这样。 【参考方案1】:编辑:如果您有 NuGet 3.0,那就是问题所在。只需更新 NuGet,一切都会正常。以下步骤适用于 NuGet 3.0,这很痛苦且容易出错。不要经历这样的痛苦,选择简单的步骤,更新你的 Nuget!
我更新到 VS Express 2015,从那时起我经历了一些冒险。
TL;DR如果您“禁用”TFS(源代码管理),您应该能够安装该软件包。然后再次将解决方案添加到源代码管理中,但它给我带来了很多问题。
所以...
我看到你有 TFS。我也有。
另外,我发现您收到的错误消息与我相同。
我尝试安装 LanguageExt(一个很棒的 C# 6 库),但在尝试安装其依赖项之一(System.Collections.Immutable)时失败。
如果您想了解所有这些内容,请备份您的项目文件夹。
这就是我所做的:
1 - 将我的解决方案文件夹复制到其他地方。
2 - 打开解决方案。 VS 巧妙地让我将其添加到源代码管理中,但我不想。
3 - 尝试Install-Package LanguageExt
4 - 意外成功!
5 - “好吧,让我再次将它添加到 TFS 源代码管理”
我的旅程从这里开始。
由于我对 TFS 的经验很少,我遇到了成千上万的冲突、文件消失和再次出现等等。
但经过一些工作,我让它运行起来了。
这是值得的。
但解决方案并不大,所以很容易。
【讨论】:
因为我刚拿到 3.1 版,所以来这里更新它,现在它可以工作了。你太棒了,*** 太棒了。谢谢。 谢谢它的工作。更新 Nuget 包管理器后,我不得不重新启动 Visual Studio 2015。 遇到了同样的问题,接受了更新 NuGet(从 3.0.6 到 3.4.3)的建议,并且成功了。 自从我发布这个解决方案已经一年半了,我仍然在为现在应该已经解决的问题获得支持,或者至少我认为是这样。 Danü 是应该得到支持的人:/【参考方案2】:下面的包也有同样的问题,通过“工具 -> 扩展和更新 -> 更新”将 NuGet 更新到 v.3.1.1.0,现在一切正常。谢谢!
Microsoft.Bcl
Google.Apis.Calendar.v3
Razor 引擎
示例错误,以便更多人可以找到此线程:
"Install-Package : 路径不是合法形式。 在行:1 字符:16 + 安装包
【讨论】:
【参考方案3】:我的 VS 2015 遇到了同样的问题,我只是通过在 VS 2013 中打开相同的解决方案通过 nuget 添加了引用,然后在 VS 2015 中重新打开它以进行日常工作。
【讨论】:
【参考方案4】:我在 nuget 包管理器的 3.5.0.1484 版本上发生了这种情况。在我的例子中,来自 dev 分支的合并更改了 packages.config 文件以列出不再存在的包的版本。加载解决方案后,任何尝试在包管理器控制台中使用包命令之一都失败,并出现路径不是合法形式。 错误。我最终使用解决方案级别的 gui 来整合受影响的软件包并解决了错误。可能我也可以恢复 packages.config 文件。
【讨论】:
【参考方案5】:请在 package.config 中手动添加一个条目,如下所示并构建解决方案。这对我有用。
【讨论】:
【参考方案6】:我在 VS 2017 中遇到了同样的问题,使用了另一个包 (WPFLocalizeExtension)。
解决方法是从项目中删除 .nuget 文件夹,然后转到 .csproj 项目文件,并删除以下行:
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<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>
在那之后(在尝试了全世界所有现有的解决方案之后),我重建了项目,程序运行成功并且运行完美。
nugget 存储库的 bug 真是令人难以置信....您需要某种魔法来解决每种特定情况,这太可怕了。
希望这个解决方案对任何人都有帮助。
【讨论】:
以上是关于安装 Nuget 包错误“路径不是合法形式”的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 编译错误 - 计算机中缺少 nuget 包,但 nuget restore 说所有包都已安装?
错误:找不到 2 个 Android X 程序集,请确保安装以下 NuGet 包:- Xamarin.AndroidX.MediaRouter