none
参照先の他のプロジェクトの参照先 RRS feed

  • 質問

  • 例えば、以下のような構成でプロジェクトを参照していたとします。

          Library1   Library2

                 ↑参照       ↑参照

                  Library3

                            ↑参照

                 Application

    この時、ApplicationのソリューションにはLibrary3だけではなく、Library1とLibrary2も追加しないとビルドが通らないと思います。

    参照先のプロジェクトの参照先が多くなってくるととても大変なので、何か回避する方法(Library3の追加だけ)はないでしょうか?

    (nuget: nugetのパッケージではなくソースコードを全部持ってきて静的解析をかけたいという要件があるため使用できません。

     TFS:   お試し版を試してみましたが上手くできませんでした。)

    2015年7月29日 8:15

すべての返信

  • 参照先のプロジェクトの参照先が多くなってくるととても大変なので

    何がどう「大変」なのでしょうか? そこに問題と解決策が隠れている可能性もあります。

    例えばソリューションフォルダーを作って階層化することができます。例えば指定したサブツリーだけを表示することもできます。例えばビルド用のソリューションファイルとは別に適切な範囲を持ったソリューションファイルを別途用意することもできます。

    2015年7月29日 8:29
  • Library3 のソースコードを含める必要があるのであれば、Library3 のプロジェクトが参照するものは持ってこなければなりません。Library3 が Library1 や Library2 を DLL 参照にしてもよいなら、そこである程度切れるでしょうけど、静的解析に Library1, Library2 のソースコードも含めないといけないという要件があるなら、回避策はありません。

    手間を減らしたいのであれば、Library3 までで静的解析結果を求めておき、Application とは別枠で管理・監視するということを考えていただくしかありません。

    2015年7月29日 13:22
    モデレータ
  • ご回答ありがとうございます。

    説明不足で大変申し訳ありません。また、1点勘違いをしていました。

    以前(VS2012 C++の時)は、ソリューション毎に参照設定が保持されていたので、Library3を取り込んだソリューション全部でLibrary1とLibrary2への参照設定をし直す必要がありました。一度設定してしまえばOKなんですが、プロジェクト数が多かったり、参照の階層が深くなってくると設定の不備でビルドが通らないことが多々あり大変でした。

    ですが、今回の環境(VS2013 C#)では参照設定はプロジェクトの方に保持されるようなので、Library3の参照設定を見てソリューションにプロジェクトを追加していけば問題無いように思いました。

    プロジェクト参照でやってみます。

    • 編集済み fuchico 2015年7月30日 0:59
    2015年7月30日 0:49
  • 以前(VS2012 C++の時)は、ソリューション毎に参照設定が保持されていたので、Library3を取り込んだソリューション全部でLibrary1とLibrary2への参照設定をし直す必要がありました。

    それは参照設定ではなく、ビルドの依存関係の設定だと思われます。

    一応、ネイティブの C++ でも参照設定のプロパティは利用でき、プロジェクト参照にしていればビルド順序が考慮されたはずですし、lib ファイルのリンクなども勝手にやってくれるなど、そこそこ使えたはずです。

    • 回答の候補に設定 星 睦美 2015年8月17日 8:05
    2015年7月30日 14:10
    モデレータ