none
Visual Studio 2015 で、ソリューションエクスプローラに表示されている参照の表示名を変更したい。 RRS feed

  • 質問

  • 現在、学習しながら進めています。

    表現に不適切な文言がございましたら、ご指摘いただければと思います。

    よろしくお願いします。


    現在、1つのソリューション内に、2つのプロジェクトを作成しています。

    プロジェクト名を、

     ProjectA

     ProjectB

    とします。

    ProjectBの、アセンブリ名・ルート名前空間を、

     AAA.ProjectB

    とし、ビルドしました。

    これを、ProjectAで参照させてみたのですが、

    ProjectAの参照のツリー部分には、

     ProjectB

    としか表示されませんでした。

    プロパティを見てみると、

    IDは「AAA.ProjectB」となっていましたが、(名前)がProjectBとなっています。

    標準設定されている「System.Configuration」などは、(名前)もIDも「System.Configuration」となっています。

    Visual Studio 2008 の時は、(名前)は「AAA.ProjectB」で作成されていたと思ったのですが…


    (名前)も、「AAA.ProjectB」(アセンブリ名そのまま?)にすることはできませんでしょうか?


    ご教示よろしくお願いします。


    2016年5月10日 13:18

回答

  • こんにちは。

    ライブラリの参照方法にはDLL参照とプロジェクト参照がありますが、
    プロジェクト参照を行っているのではないでしょうか。
    参照マネージャーのプロジェクトタブで選択した場合はプロジェクト参照、参照タブからファイル名(DLL)を指定した参照はDLL参照です。
    DLL参照の場合はアセンブリ名がNameに設定されると思います。
    なので一つ目の案はDLL参照にすることです。

    もう一つの案としてはProjectAのプロジェクトファイル上にNameが設定されているので
    それを外部エディタで編集することは一応出来ます。
    以下はC#の場合です。(.csproj)

    • 回答としてマーク A__KI__CO 2016年5月11日 1:02
    2016年5月10日 13:31
    モデレータ
  • どうしても合わせたいなら、プロジェクト名自体(ソリューションエクスプローラーで ProjectB と表示されているもの)を変えてください。
    ソリューションエクスプローラーでプロジェクトのノードを選んで名前の変更、あるいはファイルメニューからプロジェクトの名前をつけて保存ができると思います。

    参照する側(今回で言う ProjectA)の csproj を直接変えれば見た目だけを変えられるかもしれませんが、何かのタイミングで元に戻されることがあります。
    (プロジェクト追加とか、参照設定追加とか、何かでリフレッシュがかかるはず)

    すでに情報提供があることですが、基本的にプロジェクト参照の場合はプロジェクト名が、DLL やアセンブリ参照の場合はアセンブリ名が表示されます。
    System.Configuration はアセンブリ参照なのでアセンブリの名前が出ていると言うことになります。
    だからといって、ソリューション内にあるプロジェクトを DLL 参照にすると、Debug/Release の構成変更が追従しないなど、開発に支障が出るのでやめておいた方がいいです。

    2016年5月10日 14:47
    モデレータ

すべての返信

  • こんにちは。

    ライブラリの参照方法にはDLL参照とプロジェクト参照がありますが、
    プロジェクト参照を行っているのではないでしょうか。
    参照マネージャーのプロジェクトタブで選択した場合はプロジェクト参照、参照タブからファイル名(DLL)を指定した参照はDLL参照です。
    DLL参照の場合はアセンブリ名がNameに設定されると思います。
    なので一つ目の案はDLL参照にすることです。

    もう一つの案としてはProjectAのプロジェクトファイル上にNameが設定されているので
    それを外部エディタで編集することは一応出来ます。
    以下はC#の場合です。(.csproj)

    • 回答としてマーク A__KI__CO 2016年5月11日 1:02
    2016年5月10日 13:31
    モデレータ
  • どうしても合わせたいなら、プロジェクト名自体(ソリューションエクスプローラーで ProjectB と表示されているもの)を変えてください。
    ソリューションエクスプローラーでプロジェクトのノードを選んで名前の変更、あるいはファイルメニューからプロジェクトの名前をつけて保存ができると思います。

    参照する側(今回で言う ProjectA)の csproj を直接変えれば見た目だけを変えられるかもしれませんが、何かのタイミングで元に戻されることがあります。
    (プロジェクト追加とか、参照設定追加とか、何かでリフレッシュがかかるはず)

    すでに情報提供があることですが、基本的にプロジェクト参照の場合はプロジェクト名が、DLL やアセンブリ参照の場合はアセンブリ名が表示されます。
    System.Configuration はアセンブリ参照なのでアセンブリの名前が出ていると言うことになります。
    だからといって、ソリューション内にあるプロジェクトを DLL 参照にすると、Debug/Release の構成変更が追従しないなど、開発に支障が出るのでやめておいた方がいいです。

    2016年5月10日 14:47
    モデレータ
  • だからといって、ソリューション内にあるプロジェクトを DLL 参照にすると、Debug/Release の構成変更が追従しないなど、開発に支障が出るのでやめておいた方がいいです。

    そうですね。

    MSDN上にも、
    「コンパイル エラーが発生する可能性があるため、同じソリューション内の他のプロジェクトの出力に対するファイル参照は追加しないでください。 [参照の追加] ダイアログ ボックスの [プロジェクト] タブを使用してプロジェクト間参照を作成します。そうすることによってプロジェクトで作成するクラス ライブラリを管理する機能が向上し、チーム開発が簡単になります。」と記載があります。
    ※多少はソリューションのビルド順序設定で回避できますが。

    前者のプロジェクトファイルを直接変更する方法についてもAzuleanさんが仰っているとおりだと思います。(いつ修正がかかるかわからない)


    2016年5月10日 15:34
    モデレータ
  • Tak1waさん、、Azuleanさん、ご回答ありがとうございました。

    お二人のご指導の通り、

    ProjectBの名前の変更を行う方法で対応したいと思います。

    自作のプロジェクトの参照設定をまとめて表示されるようにしたかったのが目的なので、

    全てのプロジェクトの名前の先頭にAAA.を追記することにしました。

    ※Tak1waさんがご教示くださった、.vbprojの記述をエディタで編集してみて

    ソリューションエクスプローラの表示が変わることを確認できました。

    VisualStudio2008で作成された.vbprojも確認してみて、

    2015で作成されたものと違っていることも確認できました。

    大変助かり、また勉強になりました。

    ありがとうございました。

    2016年5月11日 0:17
  • VisualStudio2008で新たに参照作成をしてみたところ、

    「AAA.ProjectB」とはならず、「ProjectB」となりました。

    バージョンの問題ではありませんでした。

    おそらく、お二人がお教えいただいたとおり、

    基本的にプロジェクト参照の場合はプロジェクト名が、DLL やアセンブリ参照の場合はアセンブリ名が表示されます。

    が理由のようです。再度確認いたします。

    本当にありがとうございました。

    2016年5月11日 1:02