Windows 8.1 Enterprise x64、Visual Studio 2015、MVC 5、EF 6、VS Online、gitを使用
私はVisual Studioを使用して比較的新しい開発者であり(約9か月)、開始して以来、参照とNuGetパッケージで非常に困難な時期を過ごしてきました。週末にコンピューターをシャットダウンした金曜日に、私の参照はすべて正常に機能していました。週末中ずっとコンピューターに触れていませんでしたが、今日は起動して、大量の参照エラーがあります。
(合計6,262のエラーがありますが、明らかに全体をスクリーンショットすることはできません。)
私が言ったように、この種の問題は非常に頻繁に発生し、それは非常にイライラします。私が試したこと:
packages
フォルダーの内容を完全に削除し、NuGetにそれらを復元させます(すべて再インストールされ、ビューには以前と同じエラーがあります)Copy Local
_に設定されていることを確認してくださいbin
およびobj
フォルダーを削除し、コンピューターを再起動して、クリーンアップし、再構築しますweb.config
_(Views
内またはルート)にあることを確認しましたpackages
フォルダーにあります)私はこれらのパッケージとリファレンスで知恵を絞っています。それは毎回異なる修正であり、今回はそれを理解できません。私が見落としていた明らかな修正を見逃していますか?これが機能しているときに何らかの形でバックアップを取り、問題が発生したときに復元する方法はありますか?現在の問題を支援したり、根本的な問題を修正したりするために、どんなアイデアでも大歓迎です。
追記
問題はビューだけではありません。コントローラーもエラーをスローしています。具体的には:
型または名前空間名「Controller」が見つかりませんでした(usingディレクティブまたはAssembly参照がありませんか?)
(文字通りController
と表示されますが、プライバシーやその他の理由で変更されたものではありません。)
これらは、必要なすべての名前空間にusing
ステートメントがあるという事実にもかかわらずスローされます。 using
ステートメント自体は適切に機能しますが、コードにエラーがスローされます。推奨される自動修正は、すべてを手動で参照することです。たとえば、var sb = new StringBuilder();
は、行をvar sb = new System.Text.StringBuilder();
に変更することを望んでいます。その修正をテストしても問題は修正されず、System
ではなくStringBuilder
で同じエラーがスローされます。
追加の要求情報
.gitignore
_では無視されます)。.csproj
_ファイル内の参照の形式は_..\..\..\packages\
_です(_.csproj
_ファイルを基準とした相対位置が正しい)。パッケージがgitで正しく機能するために必要なことは、1つだけです。
リポジトリを作成するときは、必ずVisual Studio開発用に調整された.gitignoreを追加してください。 Googleでそのようなファイルを検索するか、 here から取得できます。
これにより、後で問題を引き起こすようなものをコミットしないようにします。
これにより、パッケージをコードリポジトリにチェックインするときに通常発生する多くの問題を解決できます。パッケージを追加/削除したり、パッケージをアップグレードしたり、リポジトリを新しいマシンに複製したり、パッケージを自動的に復元したりできます。
これは新しいプロジェクトに適しています。既に大きな混乱のあるプロジェクトがある場合、Visual Studioはパッケージのバージョンを複数の場所(packages.configとapp.config(および必要に応じてweb.config))に保持するため、修正するのは非常に困難です。
すべてのパッケージを削除できます(すべてのプロジェクトからすべての参照を削除し、パッケージの内容を削除します)。
パッケージがファイル(packages.configまたはapp.configなど)に表示されていないことを確認してください。 .gitignoreを追加してから、パッケージの追加を開始します。
動作しない場合は、新しいプロジェクトを開始し、.gitignoreを追加し、すべてのコード(コードのみ)を転送して、パッケージをインストールします。
GitがVSでどのように機能するかについてはあまりよく知りませんが、TFSを使用してソース管理からソリューションのバインドを解除し、すべてのパッケージを修正し、再度バインドする前にクリーニングおよび再構築して、NuGetに関する多くの問題を解決したことを思い出します参照。
GitがVS内で異なる方法で動作する場合、私は謝罪します。