0

ソフトウェアのローカル コピーに更新されたときに同僚が変更をリポジトリにコミットすると、Visual Studio がそれらをすぐに認識せず、リロードするという非常に奇妙な状況があります。その結果 (これは非常に奇妙です)、ほとんどの場合、プロジェクトをリロードせずに変更を保存し、同僚の変更を上書きします。なぜコードを変更しなければならなかったのに、実際には変更しなかったのかと時々聞かれるのはとても恥ずかしいことです。もう1つのことは、誰かが新しいクラスやフォームなどを追加したときなど、VSプロジェクトレベルの変更をチェックインしてVisual Studioで作業を続けると、警告が表示されるまでに少なくとも5〜10分かかることですいくつかの変更があり、プロジェクトなどをリロードするように求められました...

自動リロードをトリガーする設定がビジュアル スタジオのどこかにあるはずですが、見つかりません。これはこれまでのところ私と別の人に影響を与えていますが、プロジェクトがリロードを開始するまでに最大30分かかる可能性があるため、私のものは最も奇妙です.

どんなアイデアでも歓迎

これが私の設定です ここに画像の説明を入力

4

3 に答える 3

0

ソース管理を使用している場合は、同僚による変更をPCにコピーする前に、ローカルワークスペースをサーバーと同期する(最新のコードを「取得」する)必要があります。

変更を加える前に最新のコードを「取得」しない場合は、変更を他の人のコードとマージする必要があります。これは、特にデフォルトのVisual Studio自動マージを使用する場合、困難で時間のかかる、または危険なプロセスになる可能性があります。プロセス。これは通常、間違ったことを行い、本質的に破損したコードになります(たとえば、説明しているように、同僚の作品を削除したように見えます)。

ソース管理を操作する最良の方法は、「ほとんど頻繁に」アプローチすることです。

  • 新しい作業を開始する前に最新のソースコードを入手して、PCを可能な限り最新の状態にしてください。
  • 通常、最新のコードを頻繁に「取得」して(たとえば、毎朝最初に取得する)、マージの競合にフラグを付けてできるだけ早く処理することをお勧めします。マージするまでの待機時間が長くなると、マージプロセスが悪化する傾向があります。(警告:サーバー上のコードの現在のバージョンが機能していることをビルドシステムに確認してから取得してください。壊れたコードをPCに取り込むと、まったく機能しなくなる可能性があります)。
  • 完了時に安全にチェックインできる小さな増分ステップをできるだけ多く作業に配置します(数百のファイルで3か月間作業してから、1つの大きな変更としてシステムにダンプするのではなく)
  • チェックインする準備ができたら、最新のコードを取得し、再構築して、変更を再テストし、最新のプログラムコードと統合しても機能することを確認します。すべてがうまくいくかどうかだけチェックインしてください。

また、ファイルを編集しようとすると、ソース管理プロバイダーがそのファイルの最新バージョンを自動的に「取得」する場合があることにも注意してください(これにより、Visual Studioがファイルをリロードしたことを通知し、おそらくあなたが言う理由を説明する可能性があります他の誰かによって最近変更された新しいファイルの編集を開始するまで行われないため、「更新」に時間がかかる場合があります)。この場合、真実は、ソースコードのセット全体を「更新」しておらず、1つのファイルだけを更新しているということです。この場合、ソースコードに対する最新の変更をすべて取得する必要があります(更新していない場合)。コンパイルできない、または(さらに悪いことに)コンパイルされても、コードの一部のみが最新であるために未定義の動作を示す場合があります)

最後に、コードをチェックインするときの非常に良い方法は、チェックインしているファイルのリストを調べ、それらを最新のサーバーコードと1つずつ比較して、何が変更されたかを確認することです。これは面倒に聞こえるかもしれませんが、いくつかの利点があります。

  • それはあなたが何をしたかを思い出させます。それはあなたのすべての変更を明確に説明し、重要なメモを見逃さないようにするためにチェックインコメントを記入するのに役立つことがあります。
  • マージプロセスで失敗したものを簡単に見つけることができます-触れていないことがわかっている、作成または削除されたように見えるコードのチャンクがあります。したがって、変更を「削除」することで同僚を煩わせるのではなく、チェックインする前にこれらの問題を発見して修正することができます。
  • これは、チェックインする前に取り出すのを忘れた一時的なデバッグコードを見つけるのに非常に便利です。
  • チェックインしようとしているコードの一部をダブルテイクして、「えっ?どうしてそんなことをしたの?」と思うことさえあるかもしれません。そして、あなたは再検討することを決定するかもしれません、そしておそらくあなたが行って良かったと思ったコードを書き直すことさえするかもしれません。

最後の注意:編集で表示するオプションは、PC上の別のプログラムによってPC上のファイルに加えられた変更にのみ関連しています。別のユーザーが変更を加えてソース管理にチェックインした場合、これらのオプションは効果がありません。Visual Studioがこれらの変更に反応するのを見ることができるのは、ソース管理システムがそれらの変更をPCのハードドライブにコピーするときだけです(ソース管理システムがVSとどの程度統合されているかによって異なります)。

于 2013-03-24T00:09:45.853 に答える
0

問題が Visual Studio にあると確信している場合 (たとえば、ファイルは実際はディスク上で変更されているが、Visual Studio には表示されない)

Detect when file is changedオプションがチェックされていることを確認します。

Tools > Options > Environment > Documents > Detect when file is changed outside the environment

ここに画像の説明を入力

于 2013-03-21T08:51:45.107 に答える
0

外部の変更が原因でプロジェクトをリロードするアラートが表示されることがあるため、Visual Studio でファイルの変更を検出するために必要な設定が既にあることを意味します。

ただし、プロジェクト/ソリューションの再読み込みは、.csproj (または .vbproj) または .sln ファイルが変更された場合にのみトリガーされます。

ところで、バージョン管理システムを使用していますか? ソリューションの共有と編集を同時に行っているようです。

于 2013-03-21T09:00:40.157 に答える