2016-09-29 3 views
3

Visual StudioでC#プロジェクトを作成するためのベストプラクティスを指摘してもいいですが、別の開発者にコピーを送信してさまざまな設定が機能しないため別のPCでVSプロジェクトファイルのコピーを別の開発者に与える

たとえば、私のPCにDLLへの参照を含めると、他の開発者はそれをやり直さなければなりません。

+2

社内のパッケージマネージャをセットアップしようとします。 NuGet。その特定の問題に役立つでしょう。または、ソースコントロール内にdllを置いて、相対パスで参照することもできますか? – Hendry

+0

@Grahamあなたと他の開発者の間にないことは、コードリポジトリです。あなたがGITをよく知っているなら、それを試してみて、あなたの誰かが変更をコミットしない限り、あなたのコードが同期することを99%確信しています – Sherlock

+4

ビジュアルスタジオのソリューションフォルダそれらに相対的なパスがあります。もちろん、可能であれば常にナゲットパッケージを使用してください。もちろん、ソース管理システムを使用し、何もコピーしません。 – Evk

答えて

2
  1. gitのようなバージョン管理システムの下にソリューションを保存します。
  2. すべてのビルド成果物をこのストレージから除外します。ビルド成果物は、ビルドプロセス中に作成されるファイル(binフォルダ、objフォルダなど)です。ソース管理の下にそれを保存する必要はなく、他の開発者に配布する必要はありません。
  3. 特定のソリューションの個人設定を保存する.suoファイル、Resharperアーチファクトなど、すべてのユーザー固有の成果物を除外します。
  4. ソリューションフォルダ(存在する場合)でアプリケーションを実行して作成されたすべての一時ファイルを除外します。
  5. 参照するサードパーティ製のライブラリをすべて含みますが、これはナゲットパッケージではありません。すべてのライブラリをソース管理下のソリューションフォルダに保存します。
  6. ナゲットパッケージフォルダを含めることも、含めることもできません。 Visual Studioはこれらのパッケージ自体を復元することができますが、一部のパッケージでは利用できなくなる可能性があり、ソース管理下にパッケージを保存することを好む人もいます。その決定はあなた次第です。
  7. 場合によっては、プロジェクトに大きなファイル(グラフィックス、ビデオ、オーディオ)などがある場合があります。そのようなファイルはgitのようなバージョン管理システムに格納することはお勧めできません。変更を行うたびにコピーを保存する必要があるからです。しかし、gitはそのようなファイル(https://git-lfs.github.com/)のための別個のストレージを提供しています。そのような場合に使用することをお勧めします。
  8. 解決策をコピーして別の開発者に送信しないでください。そのためには、ソースコントロールのみを使用してください。ソリューションをすべてのアーティファクトで前後にコピーすると、多くの問題が発生する可能性があります。
+0

通常、あなたはポイント8で正しいですが、私は言及する価値は、ソリューションの手動コピーはgitリポジトリの設定(除外されたファイルに関する)と同じロジックに従うだけであることに注意してください。 「プロジェクトが完了したら最終的なソースをクライアントに発送する」のような場合があります。バージョン管理ベースの配布は余分な作業になります。それを行うには、バージョンコントロールを使用して定期的に開発し、バージョンコントロール下のファイルが十分であることを確認し、バージョンコントロールから現在のクリーンコピーをエクスポートして出荷することが賢明です。 – grek40

+0

おそらく、すべてのファイルを手作業で除外するのは簡単ではないので、人がコピーして渡すとほとんど全てがコピーされます。 – Evk

1

だから、優れたアドバイスをスタックオーバーフロー(私はこのサイトが大好き)によって与えられた。私は簡単なテストをしようと思った。私はVS2015ですばやく「こんにちはの世界」のコンソールアプリをノックアップしました。

があったファイルは「すべてを保存」してここにいるんでした:

C:.                         
│ ConsoleApplication8.sln                   
│                         
└───ConsoleApplication8                    
    │ App.config                     
    │ ConsoleApplication8.csproj                 
    │ Program.cs                     
    │                        
    ├───bin                       
    │ └───Debug                     
    │   ConsoleApplication8.exe.config              
    │   ConsoleApplication8.vshost.exe              
    │   ConsoleApplication8.vshost.exe.config            
    │   ConsoleApplication8.vshost.exe.manifest            
    │                        
    ├───obj                       
    │ └───Debug                     
    │  │ ConsoleApplication8.csproj.FileListAbsolute.txt          
    │  │ DesignTimeResolveAssemblyReferencesInput.cache          
    │  │ TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs      
    │  │ TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs      
    │  │ TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs      
    │  │                      
    │  └───TempPE                    
    └───Properties                     
      AssemblyInfo.cs 

を私は、構築され、プロジェクトを実行し、これらがその後あったファイルです:

C:.                         
│ ConsoleApplication8.sln                   
│                         
└───ConsoleApplication8                    
    │ App.config                     
    │ ConsoleApplication8.csproj                 
    │ Program.cs                     
    │                        
    ├───bin                       
    │ └───Debug                     
    │   ConsoleApplication8.exe                
    │   ConsoleApplication8.exe.config              
    │   ConsoleApplication8.pdb                
    │   ConsoleApplication8.vshost.exe              
    │   ConsoleApplication8.vshost.exe.config            
    │   ConsoleApplication8.vshost.exe.manifest            
    │                        
    ├───obj                       
    │ └───Debug                     
    │  │ ConsoleApplication8.csproj.FileListAbsolute.txt          
    │  │ ConsoleApplication8.csprojResolveAssemblyReference.cache       
    │  │ ConsoleApplication8.exe                
    │  │ ConsoleApplication8.pdb                
    │  │ DesignTimeResolveAssemblyReferencesInput.cache          
    │  │ TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs      
    │  │ TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs      
    │  │ TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs      
    │  │                      
    │  └───TempPE                    
    └───Properties                     
      AssemblyInfo.cs 

余分なファイル:

ConsoleApplication8\bin\Debug\ConsoleApplication8.exe 
ConsoleApplication8\bin\Debug\ConsoleApplication8.pdb 
ConsoleApplication8\obj\Debug\ConsoleApplication8.csprojResolveAssemblyReference.cache 
ConsoleApplication8\obj\Debug\ConsoleApplication8.exe 
ConsoleApplication8\obj\Debug\ConsoleApplication8.pdb 

だから次、私はビンやOBJフォルダーを削除し、ソリューションを再読み込み。 binおよびobjフォルダはビルド前と同じように再作成されました。

鮮やかな - ありがとうございます。

関連する問題