web-dev-qa-db-ja.com

Nugetパッケージのインストールエラー「パスは有効な形式ではありません」

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(コミュニティエディション)で発生します。

31
Dänu

編集: NuGet 3.0を使用している場合、それが問題です。 NuGetを更新するだけで、すべてが機能するはずです。以下の手順はNuGet 3.0に適用されますが、これは苦痛でエラーが発生しやすいものです。そのような苦痛を経験しないで、簡単なステップを選択して、Nugetを更新してください!

VS Express 2015にアップデートして以来、いくつかの冒険を経験してきました。

TL; DR TFS(ソース管理)を「無効」にすると、パッケージをインストールできるはずです。その後、ソリューションをソース管理に再度追加しましたが、それは多くの問題を引き起こしました。

そう...

TFSがあります。私も持っています。

また、私と同じエラーメッセージが表示されているのがわかります。

LanguageExt(C#6の素晴らしいライブラリ)をインストールしようとしましたが、依存関係(System.Collections.Immutable)の1つをインストールしようとして失敗しました。

これらすべてを実行する場合は、プロジェクトフォルダーのバックアップを作成してください。

これは私がやったことです:

1-ソリューションフォルダーを別の場所にコピーしました。

2-ソリューションを開きました。 VSはソース管理に追加するようにスマートに要求しましたが、私はしたくありませんでした。

3-Install-Package LanguageExt

4-予期しない成功

5-「ファイン、もう一度TFSソース管理に追加してください」

ここから私の旅が始まりました。

TFSの経験がほとんどないため、何千もの競合が発生し、ファイルが消えて再び表示されます。

しかし、いくつかの作業の後、私はそれを実行しました。

そして、それは価値がありました。

しかし、ソリューションは大きくないため、簡単でした。

49
Ricardo Pieper

以下のパッケージにも同じ問題があり、「ツール->拡張機能と更新->更新」でNuGetをv.3.1.1.0に更新しましたが、すべてが再び機能するようになりました。ありがとう!

Microsoft.Bcl

Google.Apis.Calendar.v3

RazorEngine

より多くの人々がこのスレッドを見つけることができるようにサンプルエラー:

"Install-Package:パスは有効な形式ではありません。1行目:char:16 + Install-Package <<<< RazorEngine + CategoryInfo:NotSpecified:(:) [Install-Package]、Exception + FullyQualifiedErrorId:NuGetCmdletUnhandledException、 NuGet.PackageManagement.PowerShellCmdlets.InstallPackageCommand」

15
Ogglas

VS 2015で同じ問題が発生した場合、VS 2013で同じソリューションを開き、通常の作業のためにVS 2015で再度開いて、nugetを介して参照を追加しました。

4
Suneet Nangia

下記のようにpackage.configにエントリを手動で追加し、ソリューションをビルドしてください。これは私のために動作します。

0
Rameshkan B

これは、nugetパッケージマネージャーのバージョン3.5.0.1484で発生しました。私の場合、devブランチからのマージによりpackages.configファイルが変更され、存在しないパッケージのバージョンがリストされます。ソリューションのロード後にパッケージマネージャーコンソールでパッケージコマンドのいずれかを使用しようとすると、パスは有効な形式ではありませんエラーで失敗しました。最終的にソリューションレベルのGUIを使用して、影響を受けるパッケージを統合し、エラーを解決しました。おそらく、packages.configファイルを元に戻すこともできました。

0
Tedford

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>

その後(そして、既存のすべてのソリューションを全世界に試した後)、プロジェクトを再構築し、プログラムが正常に実行され、完璧に動作するようにしました。

ナゲットリポジトリのバグは本当に信じられません。特定のケースで解決するには何らかの魔法が必要です。それは恐ろしいことです。

このソリューションが誰にも役立つことを願っています。

0
Mordekay