LoginSignup
1
0

VisualStudioサードパーティ削除後のNuGetエラー NU1507, NU1301 の解決法

Posted at

はじめに

NuGetエラーNU1301、NuGet警告NU1507に遭遇したときの解決法です。

経緯

ある日突然、VisualStudio2022で開発中のC#プロジェクトのビルドが通らなくなりました。

NU1301 The local source '<数週間前に削除したフォルダのパス>' doesn't exist.

こんなエラーが表示されました。指し示してしているのはcsprojファイルの「<Project Sdk="Microsoft.NET.Sdk">」タグのようです。
数週間前に削除したフォルダが無いのはそれはそうですが、そのフォルダ自体の有無というよりその中のdllとかそういったものを探しているのでしょう。dotnetのバージョンなのか?と思い解決しようと最新の.NET SDKをインストールしたり色々restoreとか試していたらそれはそれで

NU1507 There are 2 package sources defined in your configuration. When using central package management, please map your package sources with package source mapping (https://aka.ms/nuget-package-source-mapping) or specify a single package source. The following sources are defined: nuget.org, <数週間前にアンインストールしたVisualStudioサードパーティ>.

つまり、「パッケージソースが二つあるからどっちかにしなさい」といった警告が表示される謎の状態に陥っていました。

ちなみに、アンインストールしたサードパーティはDevExpressです。

解決法

Cドライブのどこか(私の場合C:\Users\<ユーザ名>\AppData\Roaming\NuGet)にあるNuGet.Configの要素を消せばいいだけでした。
packageSourcesという要素の中に、NU1301で指摘されているパスをvalueに持つ要素があるので、それを消します。
これでエラーNU1301は出なくなります。
また、警告NU1507で指摘されている二つ目のパッケージソースをkeyに持つ要素もあるので、念のためこちらも削除します。(警告なので必須ではないです)

NU1507のページにリンクされていたパッケージ ソース マッピングにヒントはあるのですが、別に消したものとNuGetで使い分けたいわけでもない(今後完全に使わない)ためスルーしておりました…。

おわりに

なぜ数週間大丈夫だったのかが謎のままですが、サードパーティはアンインストールするだけではきれいさっぱりなくなるわけではない、ということで今後は気を付けたいです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0