0

私は2つのソリューションを持っています(Master Framework MとSlave Project Sと言うことができます)。 MはS種類の多くのソリューションで使用されています。私のビルドプロセスで 私はMからすべてのDLLを構築し、私はあなたが知っているかもしれないと私は簡単S.VS 2010別のソリューションに応じて解決

の問題を使用して、すぐにMを変更することができ速いサイクルをご希望の作業中S. でそれらを使用すべてcsprojファイル内のライブラリやプロジェクトを参照する方法に関連しています。

あなたはあなたがこのようにそれを行う必要があります(でも、別の溶液から)プロジェクトをリンクしたい場合は、この

<Reference> 
    <HintPath>..\lib\$(Platform)\$(Configuration)\M.Example.dll</HintPath> 
</Reference> 

ような何かをしなければならないDLLをリンクしたい場合

<ProjectReference Include="..\path to project in other solution\M.Example.csproj"> 
    <Project>{2009D1C4-E18F-6CF8-8AA4-B53A1B2F1009}</Project> 
    <Name>M.Example</Name> 
</ProjectReference> 

これはC#プロジェクト(csproj)ファイルに直接書き込まれています!したがって、同じファイル内で異なる目的でプロジェクトやDLLを使用することはできません。

2つのcsprojファイルをビルドプロセスのすべてのDLLを参照するファイルと、開発のためのプロジェクト& CIの目的。

1)2つの別個の解決策を残して、Mで作業し、DLLのみを参照し、カスタム入力プロジェクト(開発時のみ)を使用してSでビルドして作業します。 SのlibディレクトリにあるMは、Sルートの外を見たり、他のプロジェクトを参照することなく、それらを使用することができます。

2)建物は唯一の公式ビルドプロセスで定義されている。この

<Reference Condition='$(BUILDING)!=""'> 
    <HintPath>..\lib\$(Platform)\$(Configuration)\M.Example.dll</HintPath> 
</Reference> 

<ProjectReference Condition='$(BUILDING)==""' Include="..\path to project in other solution\M.Example.csproj"> 
    <Project>{2009D1C4-E18F-6CF8-8AA4-B53A1B2F1009}</Project> 
    <Name>M.Example</Name> 
</ProjectReference> 

などの条件を使用してください。

私はあなたがデザインを考える必要があります

+0

Mソリューションのプロジェクトの数はいくつですか? – Reniuz

+0

ソリューションがソリューションに依存することは、正確にはどういう意味ですか?通常、ソリューションSのいくつかのプロジェクトは、ソリューションMのいくつかのプロジェクトに依存しています。もしそうなら、それらのプロジェクトを単に*両方のソリューションに追加することができます。 – jalf

答えて

1

、これは非常に簡単、多分スマートにしたいと思います。最初の瞬間、コンパイル・プロセスで時間を節約しますが、後ですべてのスレーブに合うようにマスターを修正するのに時間を費やします。

通常、変更するたびにマスター(M)を生成します。あなたがS1のための新しい機能を持っているようにMを変更すると想像してください。後で、S2をコンパイルしようとすると、S1に対して行ったMの変更に基づいて例外が発生します。

通常、この問題を回避するために、バージョン番号を使用して、p.e. S1はMのバージョン1.0で動作し、S2はMのバージョン1.1で動作します。もちろん、Masterプロジェクトは常にすべてのバージョンと互換性がありますが、維持するのが難しい場合もあります。変更が多くても1つのスレーブ時間をプロジェクトする。

postbuildイベントを使用すると、出力を他のプロジェクトにコピーするコードを適用できます。私はそれを一度ではあるが、一つのプロジェクトの中で使った。複数のソリューションでは、パスが他のマシンに収まることは確かではありません。

UPDATE:また
は、私は非常によくソリューションの管理を説明し、この記事を見つけました:
http://msdn.microsoft.com/en-us/library/ee817674.aspx

+0

はい、これはすべてが統合されたときに使用したいと考えている正しいアプローチですが、私たちはプロジェクトのスタートアップ段階(MとSの両方)にありますので、Mの多くの変更と新機能はSのニーズ。私たちはすでにフルバージョン番号のポリシーを持っていますが、この段階ではMからSへの急速な往復が必要です。 –

+0

ポストビルドイベントとは何ですか?それはうまくいくはずです。 – Tarion

1
私は最初のsollutionのために立って

:あなたのM・ソリューションの使用ポストビルドイベントで

を使用して、一部の場所で最新のビルドバイナリをコピーします。そして、Sプロジェクトは、それらのバイナリを、プロジェクト内のDLLのように参照することによって消費します。

このようにMを再構築すると、すべてのSプロジェクトはMの最新バージョンを参照します。

関連する問題