12

Microsoft Visual Studio は、XML を使用して.vcprojプロジェクト ファイルを保存します。したがって、XML プロジェクト ファイルの比較簡単です。

残念ながら、プロジェクト ファイルのプロパティのいずれかを変更すると、Visual Studio はプロジェクト ファイルの XML ノードをランダムにシャッフルすることを要求します。これにより、プロジェクト ファイルの変更のテキストの差分とマージが基本的に不可能になります。1 つのコンパイラ設定を変更すると、ファイル内の行の 50% が変更されたとビジュアル差分ツールに認識される可能性があります。いくつかの XML 差分ツールも試してみましたが、それらは同じ混乱をより構造化したビューを表示するだけです。

.vcprojソース管理でファイルを維持するための提案はありますか? または、ファイル内の XML ノードを再配置しないように Visual Studio を納得させる方法はあり.vcprojますか?

(CMake などのツールを使用して、より差分に適したテキスト ファイルからファイルを生成することも調査しまし.vcprojたが、CMake には独自の問題があります。)

4

6 に答える 6

5

これは時々出てくるようです。

おそらく、これはプラグインやその他の正規化ツールにとって機が熟した問題です。

MSが修正を決定するまで、それは素晴らしい副業になるでしょう。もちろん、彼らがあなたのIPを購入することを申し出ない限り、あなたは運が悪い.

オープンソース プロジェクトや商用製品を始めたい人はいますか? 私はゲームです。

スタンドアロンの正規化ツールを試してみて、それをプラグインにできるかどうかを確認します。

于 2009-03-04T19:16:27.947 に答える
4

これは現在、複数の人のコンピューターで構成が並べ替えられているプロジェクトファイルで機能しているのを見ており、非常に苛立たしいです...

*注:私たちは全員、チームではなくVS2008Proを使用しています

最初はランダムに並べ替えられているように見えますが、実際にはパターンがあり、まったくランダムではありません。

1つのグループの場合、構成はプラットフォーム、次に構成の順に並べられます。

  • デバッグ|Win32
  • デバッグ|x64
  • リリース|Win32
  • リリース|x64
  • DX11|Win32をデバッグする
  • DX11|x64をデバッグする
  • DX11|Win32をリリース
  • DX11|x64をリリース
  • ..。

他のグループの場合、構成は構成、次にプラットフォームの順に並べられます。

  • デバッグ|Win32
  • リリース|Win32
  • DX11|Win32をデバッグする
  • DX11|Win32をリリース
  • デバッグ|x64
  • リリース|x64
  • DX11|x64をデバッグする
  • DX11|x64をリリース
  • ..。

PERFORCEの履歴を見ると、これは同じセットの人々によって提出された複数のプロジェクトと一致しており、約50/50の分割があるため、1人の人だけで発生しているわけではありません。

これは皆さんが見ているのと同じ問題ですか?もしそうなら、私はこのパターンがマクロ/余分なdiffステップを含まない解決策を見つけるのに役立つことを願っています...

これらのマシンごとに100%再現可能であるため、どこかの設定、または何かをクリックした場合の副作用である必要があります。初期環境レイアウト(VC ++、VB、一般開発など)にどのオプションを選択するかなど、ばかげたものであっても。

于 2012-03-01T03:41:00.740 に答える
2

WinMerge を差分ツールとして使用し、移動したブロックの検出を有効にしました。問題が完全に解決するわけではありませんが、違いを視覚化するのが少し耐えられるようになります。

于 2009-03-04T18:51:36.820 に答える
0

これはどのバージョンの Visual Studio で見られますか?

私は .vcproj ファイルを使って多くの作業を行っています (複数の Visual Studio バージョンでライブラリのプロジェクト ファイルのバージョンを維持しており、常に差分とマージを行っています) が、この動作を見たことがありません。

于 2009-03-04T23:07:03.820 に答える
0

Adobe の私のチームは、vs2008 で同じことを見てきました。基本的なデバッグ/リリース、win32/win64 プロジェクトでは、4 つの構成とランダムなシャッフルが可能です。何人かの人々が、いつ、なぜ devstudio が再注文するのかを突き止めようとしましたが、現在の考えでは、ソート キーはキーワード ハッシュであるため、半ランダムです。あきらめて、コード レビューでは「実際の」変更を要約するだけです。

于 2010-06-02T19:24:13.150 に答える
0

このシャッフルの理由を見つけたと思います。少なくともVS2008では。

x64 コンパイラをインストールすると、VS はプロジェクトを次のように並べ替えます。

Debug|Win32
Debug|x64
Release|Win32
Release|x64

そうしないと、次のように並べ替えられます。

Debug|Win32
Release|Win32
Debug|x64
Release|x64

したがって、シャッフルしないように、すべてのピアに同じコンパイラ セットがインストールされていることを確認してください。

テストしたところ、この動作は再現可能のようです。

于 2014-07-07T15:04:51.050 に答える