2017-03-07 5 views
0

、これらのプロジェクトは、私の溶液中に含まれています依存プロジェクトを参照せずにビルドするにはどうすればいいですか?むしろ、特定のライブラリをDLLのを参照するよりも、私の解決策では

enter image description here

むしろソリューションのプロジェクトの一部が含まれるようになるよりも、それは可能どちらか持っていることですそれらbuild definition、またはおそらくビルド前のイベントコマンドラインなどの一部:

enter image description here

どのように私は私のsolutのために構築する必要があるプロジェクトが含まれますイオンは実際に溶液にロードされていませんか?

+0

参照を使用しない理由を説明できますか?とにかく、各projetcをビルドするために複数のmsbuildステートメントを発行するprebuildイベントを使用することができます。 – stijn

+0

@stijn理由は、これらのプロジェクトが他のソリューションから絶え間なく開発されているからです。 –

+0

@stijnこれは、MEFのようなプラグインアーキテクチャなどを使用する場合にはよくあります。 – DavidG

答えて

1

2通りの方法で作業できます。プロジェクト内の他のプロジェクトまたはDLLを参照しています。そして両方を組み合わせることができます。いくつかのプロジェクトをソリューションの一部ではないソリューションとしてビルドしたくない場合は、それらを事前ビルドし、コンパイルプロセスの出力への参照を指す必要があります。そして、それらをソリューションの一部にしたいがコンパイルしないようにするには、Build Configuration Managerを使用します。これを使って、どのプロジェクトがその設定でビルドされ、ビルドされないのかを確認できます。

あなたが大規模なソリューションを持っている場合は、同様にそこから任意ビンまたはのlibフォルダとリファレンスへの出力を設定することをお勧めします。この場合、プロジェクトのビルド順序を必ず設定してください。

小さなソリューションでは、プロジェクト参照が正常に動作します。この場合、ビルドオーダー自体が確立されます。

違いはパフォーマンスです - #1 - dllの参照で1つのプロジェクトをビルドできる場合。ケース#2では、1つのプロジェクトを構築すると、一連のプロジェクトのコンパイルが開始されます。この場合、毎回長く待つだけです。大きなソリューションでは、これは開発者にとって有害で​​す。

そして最後、あなたが参照されていないが、して、アプリで使用されているいくつかのDLLを持っている場合、反射によってロードされていると言う、あなたは$(TargetDir)にこれらをコピーするイベントを構築かポストを構築を使用することができます

+0

"それらをあらかじめビルドし、コンパイルプロセスの出力への参照を指す必要があります。" ----どうすればいいですか? –

+0

この質問は私を「壁に」置いています。たとえば、それらを別のソリューションの一部として構築します。次に、それらを永続的に保存するための 'bin'フォルダが必要です。次に 'project-add reference-browse'に行きます。あなたのDLLを選択して参照を追加してください –

+0

「壁にぶつかる」というのは全然関係がありません。単にナゲットフィードを購読するのと同じくらい簡単ではないので、別のソリューションの一部として構築することをお勧めする場合は、現在のソリューションを構築する前に、(提案したように)別のソリューションを構築するにはどうすればよいですか? –

関連する問題