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

質問
-
現在、学習しながら進めています。
表現に不適切な文言がございましたら、ご指摘いただければと思います。
よろしくお願いします。
現在、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」(アセンブリ名そのまま?)にすることはできませんでしょうか?
ご教示よろしくお願いします。
回答
-
こんにちは。
ライブラリの参照方法にはDLL参照とプロジェクト参照がありますが、
プロジェクト参照を行っているのではないでしょうか。
参照マネージャーのプロジェクトタブで選択した場合はプロジェクト参照、参照タブからファイル名(DLL)を指定した参照はDLL参照です。
DLL参照の場合はアセンブリ名がNameに設定されると思います。
なので一つ目の案はDLL参照にすることです。もう一つの案としてはProjectAのプロジェクトファイル上にNameが設定されているので
それを外部エディタで編集することは一応出来ます。
以下はC#の場合です。(.csproj)- 回答としてマーク A__KI__CO 2016年5月11日 1:02
-
どうしても合わせたいなら、プロジェクト名自体(ソリューションエクスプローラーで ProjectB と表示されているもの)を変えてください。
ソリューションエクスプローラーでプロジェクトのノードを選んで名前の変更、あるいはファイルメニューからプロジェクトの名前をつけて保存ができると思います。参照する側(今回で言う ProjectA)の csproj を直接変えれば見た目だけを変えられるかもしれませんが、何かのタイミングで元に戻されることがあります。
(プロジェクト追加とか、参照設定追加とか、何かでリフレッシュがかかるはず)すでに情報提供があることですが、基本的にプロジェクト参照の場合はプロジェクト名が、DLL やアセンブリ参照の場合はアセンブリ名が表示されます。
System.Configuration はアセンブリ参照なのでアセンブリの名前が出ていると言うことになります。
だからといって、ソリューション内にあるプロジェクトを DLL 参照にすると、Debug/Release の構成変更が追従しないなど、開発に支障が出るのでやめておいた方がいいです。
- 編集済み AzuleanMVP, Moderator 2016年5月10日 14:53
- 回答の候補に設定 星 睦美 2016年5月11日 0:41
- 回答としてマーク A__KI__CO 2016年5月11日 1:03
すべての返信
-
こんにちは。
ライブラリの参照方法にはDLL参照とプロジェクト参照がありますが、
プロジェクト参照を行っているのではないでしょうか。
参照マネージャーのプロジェクトタブで選択した場合はプロジェクト参照、参照タブからファイル名(DLL)を指定した参照はDLL参照です。
DLL参照の場合はアセンブリ名がNameに設定されると思います。
なので一つ目の案はDLL参照にすることです。もう一つの案としてはProjectAのプロジェクトファイル上にNameが設定されているので
それを外部エディタで編集することは一応出来ます。
以下はC#の場合です。(.csproj)- 回答としてマーク A__KI__CO 2016年5月11日 1:02
-
どうしても合わせたいなら、プロジェクト名自体(ソリューションエクスプローラーで ProjectB と表示されているもの)を変えてください。
ソリューションエクスプローラーでプロジェクトのノードを選んで名前の変更、あるいはファイルメニューからプロジェクトの名前をつけて保存ができると思います。参照する側(今回で言う ProjectA)の csproj を直接変えれば見た目だけを変えられるかもしれませんが、何かのタイミングで元に戻されることがあります。
(プロジェクト追加とか、参照設定追加とか、何かでリフレッシュがかかるはず)すでに情報提供があることですが、基本的にプロジェクト参照の場合はプロジェクト名が、DLL やアセンブリ参照の場合はアセンブリ名が表示されます。
System.Configuration はアセンブリ参照なのでアセンブリの名前が出ていると言うことになります。
だからといって、ソリューション内にあるプロジェクトを DLL 参照にすると、Debug/Release の構成変更が追従しないなど、開発に支障が出るのでやめておいた方がいいです。
- 編集済み AzuleanMVP, Moderator 2016年5月10日 14:53
- 回答の候補に設定 星 睦美 2016年5月11日 0:41
- 回答としてマーク A__KI__CO 2016年5月11日 1:03
-
だからといって、ソリューション内にあるプロジェクトを DLL 参照にすると、Debug/Release の構成変更が追従しないなど、開発に支障が出るのでやめておいた方がいいです。
そうですね。
MSDN上にも、
「コンパイル エラーが発生する可能性があるため、同じソリューション内の他のプロジェクトの出力に対するファイル参照は追加しないでください。 [参照の追加] ダイアログ ボックスの [プロジェクト] タブを使用してプロジェクト間参照を作成します。そうすることによってプロジェクトで作成するクラス ライブラリを管理する機能が向上し、チーム開発が簡単になります。」と記載があります。
※多少はソリューションのビルド順序設定で回避できますが。前者のプロジェクトファイルを直接変更する方法についてもAzuleanさんが仰っているとおりだと思います。(いつ修正がかかるかわからない)
- 編集済み Tak1waMVP, Moderator 2016年5月10日 15:34
- 回答の候補に設定 星 睦美 2016年5月11日 0:41
-
Tak1waさん、、Azuleanさん、ご回答ありがとうございました。
お二人のご指導の通り、
ProjectBの名前の変更を行う方法で対応したいと思います。
自作のプロジェクトの参照設定をまとめて表示されるようにしたかったのが目的なので、
全てのプロジェクトの名前の先頭にAAA.を追記することにしました。
※Tak1waさんがご教示くださった、.vbprojの記述をエディタで編集してみて
ソリューションエクスプローラの表示が変わることを確認できました。
VisualStudio2008で作成された.vbprojも確認してみて、
2015で作成されたものと違っていることも確認できました。
大変助かり、また勉強になりました。
ありがとうございました。