2009-11-14 19 views
58

最近、私は、大規模なシステムの計画の一環として、Visual Studioで様々なC#プロジェクトの作業を開始しました。このシステムは、 CとPerlで書かれたさまざまなプログラムとスクリプトの一覧です。私が現在取り組んでいるプロジェクトは、転覆に徹底的に取り組んでいるために重要な塊に達しています。私は、Visual Studioプロジェクトのリポジトリに何をすべきか、何をすべきではないのだろうと思っていました。ビルドアーチファクトであり、実際にコミットする必要のないさまざまなファイルを生成することが分かっています。Visual StudioでSVNを適切に使用するためのアドバイスがあれば誰でも知っていますか?現時点では、Visual Studio 2010ベータ版でSVN 1.6サーバーを使用しています。アドバイスやご意見は歓迎します。SubversionおよびVisual Studioプロジェクトのベストプラクティス

+1

これはVS2010 C#です。これとVS2010 C++の間にはいくつかの違いがあります。タグC#を付けます。 – Bitterblue

答えて

86

According to MSDN

は、ここで私はSVNから除外するVS固有のファイルの私のリストです

あなたは、Visual Studioのソースコントロールに、次のファイルを追加することができます。

  • ソリューションファイル(*.sln)。
  • *.csproj,*.vbprojなどのプロジェクトファイル。
  • Visual Studioプロジェクトの実行時動作を制御するために使用される、XMLに基づくアプリケーション構成ファイル。

    • ソリューション・ユーザー・オプション・ファイル(*.suo):あなたがソース管理に追加することはできません

    ファイルには以下のものが含まれます。

  • プロジェクトユーザオプションファイル。たとえば、*.csproj.user,*.vbproj.userファイルです。
  • Webプロジェクトの仮想ルートの場所を制御するWeb情報ファイル(例:*.csproj.webinfo*.vbproj.webinfo)。
  • 出力ファイルを作成します(例:*.dllおよび*.exe)。
+2

それは良いリストです。基本的には、プロジェクトをコンパイルするのに必要な最小限のファイルが必要です。 –

+0

少なくともいくつかのケースでは、 '.user'をコミットするために[case](http://stackoverflow.com/a/72370/4847772)が作られています。追加しないファイルは、['svn:ignore'](http://svnbook.red-bean.com/en/1.8/svn.advanced.props.special.ignore.html)に追加する必要があります。 – PJTraill

+0

Visual Studio 2015を使用している人は、ソース管理から '.vs'フォルダを除外したいでしょう。 http://stackoverflow.com/q/31526899/2615878を参照してください。 – Theophilus

11

ソリューションレベル:

  • .slnソリューションファイル
  • を追加.suoソリューションのユーザーオプションが

プロジェクトレベルファイルを無視します:

  • を、.vbproj.csprojを追加します(とC++ proj?)ファイル
  • .csproj.userを無視し、.vbproj.userファイル
  • binディレクトリ
  • を無視
  • objディレクトリを無視し、実行時に生成されます任意のファイル/ディレクトリ(つまり、無視してください。ログ)

使用するとVSのアドインた場合、彼らはまた、すなわち(無視。ReSharperのは.resharper.resharper.userファイルを生成します)必要なファイルを生成することがあります。

ignoreアイテムは、ファイル名(つまり、MyProject.csproj)、またはワイルドカードパターン(つまり、*.csproj.user)で明示的に無視することができます。あなたは無視その後構築ソースのクリーンコピーをチェックアウトし、設定したら


はその後何の修飾(すなわち。新しいバージョン管理外のファイル)を示さないはずです。

16

AnkhSVN - Visual Studio 2008/2010用のSubversionソースコントロールプラグインを使用することをお勧めします。

これを使用して、ソリューション、プロジェクト、およびソースのリポジトリへの最初の追加およびコミットを実行できます。ビルドアーチファクトは追加されません。ビルドで生成されたものはすべて追加されず、ソリューションによって参照されるファイルのみが追加されます。必要なビットとピースがソリューションにない場合は、後で追加できます。

+2

私はAnkhSVNを試しましたが、ソース管理上のアクションとしてIDE内のアクションを途中で解釈し、開発者にシングルファイルコミットを促す傾向があることがわかりました。私はTortoiseでもっと幸せです。 – PJTraill

+0

しかし無視するものが分かっていると便利です! – PJTraill

5

私は手動でバージョン管理してはいけないと思うすべてのファイルを含めます。

マイグローバル無視パターンは次のとおりです。

.dllファイルの.pdb .exeの.cache .webinfoた.snkビンOBJデバッグ_Resharper。ユーザーReSharperの

15

バージョン管理に次のファイルを置き:

  • .DSW(VS6ワークスペース)
  • .DSP(VS6プロジェクト)
  • の.sln(VSソリューション)
  • * projの。 (さまざまなタイプのVSプロジェクトファイル)
  • もちろん、作成したソースファイルやその他の成果物

ないは、バージョン管理に次のファイルを入れています:

  • .suo(ブラウジングやintellsenseとは何か)

    • .NCB -
    • (ETCウィンドウ配置のようなユーザーのワークスペースの設定、私は思います)
    • .user(ブレークポイントのようなユーザーのプロジェクト設定など - 私は思う)。また

    は、(生成される可能性がある、ヘッダーのように)任意のオブジェクトファイル、実行ファイル、自動生成されたファイルに入れないでください。

    実行ファイルやその他の生成ファイルについては、リリースをアーカイブできるようにする場合は例外があります。これは良いアイデアかもしれませんが、おそらくあなたのソースコードと少し違ったやり方で管理したいと思うでしょう。これを行う場合は、.pdbファイルもアーカイブして、あとでデバッグできるようにしてください。シンボルサーバを使用してアーカイブシンボルを保存したい場合があります(シンボルサーバとそのドキュメントについてはDebugging Tools for Windowsを参照)。

    Ankh.Load 
    *.projdata 
    *.pdb 
    *.positions 
    *proj.user 
    *proj.*.user 
    *.ncb 
    *.suo 
    *.plg 
    *.opt 
    *.ilk 
    *.pch 
    *.idb 
    *.clw 
    *.aps 
    
  • +0

    Nit-picking:あなたは「実行ファイルを入れないでください」と言っていますが、次の段落ではあなたが言うかもしれません! – PJTraill

    2

    無視リストを使用している場合、SVNでは大文字と小文字が区別されます。 binフォルダとbinフォルダは別々に無視してください。

    また、質問がありました。なぜステータスアイコンを更新するのに何度か時間がかかるのですか?時には、それは非常に混乱します。

    1

    Mercurialの無視リストについては、Mercurial .hgignore for Visual Studio 2008 projectsを参照してください。私はSVN無視リストの構文に慣れていないが、このスレッドはVisual Studioで何を無視するべきかの良いリストをいくつか持っている。

    関連する問題