プロジェクトで使用される一般的なコードを含むクラスライブラリプロジェクトがあり、ソース管理としてSubversionを使用しています。
使いやすさのためのソリューション、プロジェクト、コードの管理について質問があります。
このクラスライブラリをプロジェクト間で共有したいのですが、更新すると、更新はすべてのプロジェクトに簡単に適用されます。プロジェクト間で共有し、ソース制御、使いやすさなどを向上させるために、このクラスライブラリはどこにありますか?
何か案が?
プロジェクトで使用される一般的なコードを含むクラスライブラリプロジェクトがあり、ソース管理としてSubversionを使用しています。
使いやすさのためのソリューション、プロジェクト、コードの管理について質問があります。
このクラスライブラリをプロジェクト間で共有したいのですが、更新すると、更新はすべてのプロジェクトに簡単に適用されます。プロジェクト間で共有し、ソース制御、使いやすさなどを向上させるために、このクラスライブラリはどこにありますか?
何か案が?
DLLを配布する手段としてNuGetパッケージを使用できます。共通のアセンブリをpack
ビルドし、結果を特定のディレクトリにビルドして、そのディレクトリをNuGetパッケージマネージャーのリポジトリとして使用します。NuGetオプションの一部は最新のパッケージバージョンを自動的にダウンロードすることです。そのため、ソリューションを開くたびに、パッケージマネージャーはリポジトリをスキャンして新しいバージョンを探し、ある場合はそれをダウンロードします。
これは非常に簡単なチュートリアルです:http://juristr.com/blog/2012/04/using-nuget-to-distribute-our-company/
いくつかのアプローチを使用できます。
このプロジェクトを既存のプロジェクトとしてすべてのソリューションに1か所から追加できます。これは最も簡単な方法ですが、1つのソリューションで変更すると、他のすべてのソリューションが機能しなくなる可能性があります。
共通のライブラリプロジェクトを別のブランチとしてすべてのソリューションに分岐できます。この場合、1つのソリューションで変更しても、他のすべてのソリューションは機能しませんが、共通ライブラリのすべてのブランチからの変更をマージするために多くの時間を費やす必要があります。
ソリューションには多くのプロジェクトを含めることができるため、クラスライブラリプロジェクトをどこにでも効果的に配置し、必要に応じて新しい各ソリューションから参照できます。これは、マシンにソースのコピーが1つしかないことを意味します。
各プロジェクトをビルドすると、必要に応じてクラスライブラリがコンパイルされるため、ソースを最新の状態に保つプロセスを実行するだけで済みます。