特定の nuget パッケージに依存しています。新しいパッケージ バージョンを使用するようにソリューションを更新し、ソリューションをリモート GIT リポジトリにコミット/プッシュすると、パッケージの復元がアクティブ化されていても、ソリューションへの他の貢献者はプル後も古い DLL バージョンの nuget パッケージを使用しています。ただし、CSPROJ ファイルを開くと、新しいバージョンを参照する必要があることが示されます。基本的に、bin/obj フォルダーから使用される DLL と csproj ファイルで参照される DLL の間に不一致がある場合、Visual Studio は警告/エラーを生成しません。より簡潔にするには:
- ソリューションは DLL バージョン 0.5 を使用します
- Nuget 経由で DLL バージョン 0.6 にアップグレードします
- 私のVisual Studioは、バージョン0.6が使用されていることを示しています
- ソリューションを GIT にコミット/プッシュします
- 別の同僚が GIT からソリューションを引き出す
- 彼の Visual Studio には DLL バージョン 0.5 が表示され、エラーや警告は表示されません
- 彼の CSPROJ ファイルは DLL バージョン 0.6 を参照しています。
- 内部実装に変更があるため、実行時にソリューションが失敗する
これを修正するにはどうすればよいですか:
- 同僚が彼の bin/obj を削除します
- Visual Studio は、DLL が見つからないことを通知します
- 彼はソリューション レベルで [Nuget パッケージの管理] を使用し、[OK] をクリックするだけです。
- Nuget が DLL をダウンロードし、問題が解決されました
これは本当にばかげた回避策であり、私の意見では、これは自動化する必要があります。これが起こる原因となっている何か間違ったことをしている可能性はありますか?