2

私は Visual Studio 2010 Express をしばらく使用しており、かなり長い間、いくつかの大規模なプロジェクトで遊んできました。50 ~ 60 個のファイルと数千行のコードに近づいているため、すべてのデバイス間でプロジェクトをより簡単に更新してアクセスできるように、バックアップしながら、すべてのソース管理を行うことにしました。

以前に git を使用したことがあり、快適に使用できましたが、コミットして bitbucket.org のリモート リポジトリにプッシュしたとき、.vcxproj ファイルが正しいファイル構造を保持しながら、インクルードも保持されていることがわかりました。つまり、別のコンピューターにプルダウンすると、これらの include/lib ディレクトリが間違ったディレクトリを検索することになり、プル/プッシュするたびにそれらすべてを修正する必要があります。

私の質問は、ソリューションがフォルダーのセットアップを保持するように、ファイルをリポジトリにプッシュできる方法はありますか?

編集:

いくつかの調査の後、プロジェクトに追加できるファイルであるこれらのいわゆるプロパティ シートをビジュアル スタジオで調べました。設定した設定はプロジェクトの設定よりも優先されますが、個々のプロパティ ファイルをプロジェクトに追加してから .sln ファイルと、その .props のないさまざまな .vcxproj ファイルをプッシュすると、問題が発生します。ファイルを作成してから、他の誰かがリポジトリからクローンを作成すると、明らかにその props ファイルが必要なため、開かれません。

これらの行に沿って私が望むのは、リモート リポジトリ内のデフォルトの .props ファイルです。このファイルは、複製されると追跡されなくなり、そのユーザーは自分で編集できるようになります。これを実現するためのgitの考えについては十分に知りません。誰かアイデアがありますか?

4

2 に答える 2

1

あなたの問題が正確にはわかりませんが、私の理解は次のとおりです。

  1. プロジェクト ファイルには絶対パスが含まれています (例: "C:\myproj\include")。これらを相対パスに置き換えます (例: ".\include")。「$(SolutionDir)」変数が役立ちます。ソリューション ファイルが C:\myproj\myproj.sln の場合、「$(SolutionDir)include」は「C:\myproj\include」と同じです。インクルード ディレクトリとライブラリ ディレクトリは、[プロジェクト プロパティ] > [構成プロパティ] > [C/C++] と [リンカー] でそれぞれ変更できます。

  2. あなたのプロジェクトには、boost などのサードパーティのライブラリが必要ですが、これらはプロジェクトの外にあります (C:\boost など)。残念ながら、Windows/VS にはサードパーティ ライブラリの標準的な場所がないため、次のいずれかを実行できます。

    • ライブラリをプロジェクトに含めます。これは小さなライブラリではまったく問題ありませんが、大きくて広く使用される傾向があるboostのようなものでやりたいことではありません.
    • すべてのデバイスがこれらのライブラリを同じ場所 (例: C:\sdk) にセットアップすることを義務付けます。
    • プロジェクトで $(SDK_DIR) などの環境変数を使用し、すべてのデバイスでこの環境変数を設定する必要があります。

これが役立つかどうか教えてください。

于 2013-02-06T00:01:30.583 に答える
0

あなたが求めているのは、gitの汚れときれいなフィルターです。クリーニング用のスクリプトを作成する必要がありますが、sedはおそらく問題なく機能するので、実際のxml解析は必要ありません。

于 2013-02-06T00:15:40.790 に答える