今までDisktopを使っていたが、旅先なので、LapTopを持っていくことにした。環境の移行とかはしたのだが、現地で、VSを使うと、何とリストアがVSで、こける。なんでやねん、、、
明らかに、先日削除した ServiceFabric のパッケージソースがあって、それが悪さをしてそう。ちなみに、VS のパッケージソースからは削除済みなのにいまだに出てしまう。気を取り直して、先日学んだコマンドラインの方式でやってみる。
dotnet restore
Determining projects to restore...
C:\Program Files\dotnet\sdk\5.0.101\NuGet.targets(131,5): error : The local source 'C:\Program Files\Microsoft SDKs\Service Fabric\packages' doesn't exist. [C:\Users\tsushi\source\repos\ScaleControllerSpike\ScaleControllerSpike\ScaleControllerSpike.csproj]
同じですな。ではパッケージソースは?
dotnet nuget list source
Registered Sources:
1. Local Package Source [Disabled]
C:\LocalNuGet
2. nuget.org [Enabled]
https://api.nuget.org/v3/index.json
3. azure_app_service [Enabled]
https://www.myget.org/F/azure-appservice/api/v2
4. Microsoft Visual Studio Offline Packages [Enabled]
C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
まだおるがな。じゃあ、コマンドで削除や。
dotnet nuget remove source "Microsoft Azure Service Fabric SDK"
Package source with Name: Microsoft Azure Service Fabric SDK removed successfully.
うむ。確認。
dotnet nuget list source
Registered Sources:
1. Local Package Source [Disabled]
C:\LocalNuGet
2. nuget.org [Enabled]
https://api.nuget.org/v3/index.json
3. azure_app_service [Enabled]
https://www.myget.org/F/azure-appservice/api/v2
4. Microsoft Visual Studio Offline Packages [Enabled]
C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
5. Microsoft Azure Service Fabric SDK [Enabled]
C:\Program Files\Microsoft SDKs\Service Fabric\packages
まだおるがな、、、
多分これは、nuget.config のデフォルトの問題と思い調査すると次のスタックオーバーフローがヒット。
| スコープ | NuGet.Config の場所 | 説明 |
|---|---|---|
| Solution | カレントフォルダ | VSのソリューションのフォルダ |
| User | Windows: %appdata%\NuGet\NuGet.config, Mac/Linux: ~/.config/NuGet/NuGet.Config もしくは ~/.nuget/NuGet/NuGet.Config
|
Solutionのレベルで上書きされる |
| Computer | Windows: %ProgramFiles(x86)%\NuGet\Config, Mac/Linux: $XDG_DATA_HOMEつまり ~/.local/share もしくは /usr/local/share
|
User もしくは Solution レベルで上書きされる |
なるほど。だから、ユーザーレベルのを消しても、それが、Computerレベルのものだったら、消えないわけか。
コンピューターレベルのデフォルトにいたので、ServiceFabricSDK.config を消すことで無事解決。

