web-dev-qa-db-ja.com

プロジェクトファイルが変更されたときにVisualStudioの自動リロードソリューションを作成する

私が取り組んでいる現在のプロジェクトでは、現時点でコードの大きなチャーンがあります。つまり、ソース管理からの更新は、多くのcsprojファイルの変更を意味する場合があります。ご存知のとおり、VS2010には[すべて再読み込み]ボタンがありませんが、各プロジェクトを再読み込みして、各再読み込みを確認する必要があります。

プロジェクトが自動リロードされる方法、またはIDEがこれを検出してソリューションのリロードを要求できる方法はありますか?

30
Ray Booysen

最終的に解決策を見つけました:

http://lostechies.com/jimmybogard/2011/01/27/reloading-all-projects-with-vscommands/

サイトからの引用:

複数のプロジェクトが変更され、VisualStudioがプロジェクトを1つずつ再読み込みするように要求する状況で作業していることに気付くことがよくあります。これは、ソース管理を頻繁に使用していて、ブランチの切り替え、マージの実行、アップストリームの変更の統合などを行っている場合に発生します。ディスク上で変更されたプロジェクトごとに100万回「再読み込み」をクリックする必要があり、それは非常に面倒です。その上、VSは私が開いているファイルを忘れてしまうので、私が作業していたすべてのファイルが閉じられます。

私はこれについて知る最後のVSユーザーかもしれませんが、 VSCommands プラグインの無料のライトバージョンは Visual Studio Galleryで入手可能 必要なことだけを実行します–変更したすべてのプロジェクトを一度にリロードし、開いていたファイルを保持します。

29
Ray Booysen

それは苦痛ですが、私が見つけた最善のオプションは、最新のソースコードを取得する前にソリューションを閉じることです。

変更されたプロジェクトが3つ以上ある場合は、影響を受けるプロジェクトのみをアンロードして再ロードするのを取得して待つよりも、手動でアンロードして再ロードする方が高速ですソリューション全体プロジェクトの再ロードは非常に遅くなります(変更されたすべてのプロジェクトの[OK]ボタンをクリックします)。

(私の心の中で本当の質問は:なぜそれはその質問をするのですか?最新のソースコードを入手した場合、その一部だけを使用したい理由はまったくありません =。ガソリンスタンドの係員が「燃料を買った。実際に車に入れてほしいのか、それとも地面に注ぐだけなのか」と言っているようなものです。)

4
Jason Williams

Csprojファイルで参照パスが変更され、sysinternals junction tool のようなものを使用してシンボリックリンクを変更した場合、これは機能しません。例えば。ツールはD:\ ProjectsシンボリックリンクをD:\ Baselines\1.0\PrjectsからD:\ Baselines\2.0\Projectsに切り替えます。誰かがフォルダ構造を1.0と2.0の間で変更したため、.csprojファイルが突然dllパスを..からポイントします。 ..\References\some.dll to ....\References\3rd-Party\some.dll。私はそれが特別な場合であることを知っていますが、起こります(例えば私の会社で)。

ただし、別の解決策もありますが、他の利点もあるため、私が強くお勧めします。あまり知られていないVS 2010拡張機能 ソリューションロードマネージャー 。プロジェクトのロードをバックグラウンドに延期するか、手動でロードするまで延期し、大きなソリューションファイルのソリューションのロード時間を大幅に改善します。メニューにこの「ソリューションの再読み込み」ボタンがあり(残念ながらショートカットがないようです)、設定したソリューションをスキップ/バックグラウンドロードして、すべてのソリューションを最初から再読み込みします。マイクロソフトの男が彼のブログに、VS 2010に似たようなものを含めたいとコメントしましたが、この機能ではうまくいきませんでした。

確かに、ワンクリックで100個のドキュメントを更新するよりも時間がかかる場合がありますが、(相対的な)参照パスの変更の問題は解決され、少なくとも中規模のソリューションを開くたびに速度が大幅に向上します。

2013年10月現在の編集VS2012には、デフォルトでこの機能が含まれています。少なくとも非同期読み込みのもの。 「まったくロードしない」機能は、残念ながら、VS2012で手動の「プロジェクトのアンロード」を使用することによってのみ可能です。しかし、PRプロジェクトのメモリ消費量はVS2012で減少したので、それはもはやそれほど大きな問題ではありません。

1
hko