5

VSS 2008 と Visual Studio 2008 を使用しています。ソース ファイルをチェックインすると、VSS プロパティ ダイアログに「Unicode (UTF-8)」と表示されます。しかし、Visual Studio 内からチェックアウトして比較すると、「バイナリ ファイルが異なります」と表示されます。他の誰かがこれを見ていますか?どこか設定がおかしくないですか?

ありがとう、アンディ

更新: 洞察を提供してくれた VonC に感謝します。ほとんどの場合、「ローカル ファイルのエンコードを自動検出する」チェックボックスをオフにすると問題が解決しますが、少なくとも 1 つのファイルでは問題が解決しませんでした。また、複数のファイルを処理する方法を見つけることができませんでした。一度に 1 つずつ変更する必要があります。私はまだより包括的な解決策を探しています。

4

3 に答える 3

10

この古い(2004)からですが、まだ関連する記事かもしれません

ビジュアル ソース セーフは、常にテキスト ファイルの種類を適切に認識するとは限りません。' ' タイプを使用してファイルをチェックインすると、ファイルautoはバイナリとして扱われます。

したがって、2 つの .sql ファイルを比較すると、' binary files differ' が表示され、それ以上は表示されない場合があります。(これが vss がバイナリ ファイルを扱う方法です)。

バイナリファイルが異なります

解決策は、ソース セーフ内のファイルのプロパティ コンテキスト メニューを使用してファイル タイプを変更することです。タイプをテキストに変更すると、視覚的な比較を実行できるはずです。ファイルをチェックインするときに「詳細」オプションをクリックして、手動で選択を「text」に変更することもできます。

将来的に回避するには、ビジュアル ソース セーフのオプション メニューにファイル タイプ設定を追加して、そこでさまざまなファイル タイプのデフォルトの動作を設定します。

于 2009-01-05T15:24:54.973 に答える
6

VSS 用の組み込みの比較ツールを使用する代わりに、他のアプリケーションを指定することもできます。これにより、バイナリの問題を回避できます。例として、Beyond Compare を使用している場合 (悲しいことに、フリーウェアではありませんが、私が説明している 1 つです):

  1. ツールメニューに移動
  2. オプションメニュー項目に移動
  3. [カスタム エディター] タブに移動します
  4. 操作を「ファイル差分」選択に変更
  5. ファイル拡張子を次のように変更します: .*
  6. コマンド ラインを次のように変更します (引用符を含む): "C:\Program Files\Beyond Compare 2\bc2.exe" %1 %2
  7. 追加ボタンをクリック
  8. OKボタンをクリック

上記のコマンドラインの値を別のプログラムに置き換えることができると思いますが、自分で試したことはありません。

于 2009-01-23T18:51:11.220 に答える