
.NETのアセンブリって
C:\windows\assembly\
のところを開くと、あると思うのですが、そこをエクスプローラーで開くと表示されているけど、VBならImports、C#ならusingでnamespaceを指定できないのですが、私の考えが間違っているのでしょうか?
C:\windows\assembly\
のところがGACで、あそこにいろいろなバージョンのファイルがおけるて、あそこにあれば、Importsなりusingで指定できると思っていたのですが違うのでしょうか?
プロジェクトの参照の追加で指定しようとしても、上記のところのは指定できず、ほかのフォルダにあるファイルでないと指定できないのです。
お分かりになる方よろしくお願いします。
No.2ベストアンサー
- 回答日時:
#1です。
私自身は自分でGACにアセンブリを登録したことがないので、今のところGACに登録されている.NETアセンブリが見つからないという件は経験したことがありません。
なので、見つからない場合は[参照タブ]で直接参照追加するのが普通と思っていました。^^;
MicrosoftVisualStudio2005で開発されているなら以下のリンクを開いて見て下さい。
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.VisualStudio.v80.ja/dv_vsprojopt/html/2feb0fe2-0805-4cc9-8cba-b0315849dfb7.htm
このページの中に
アセンブリがグローバル アセンブリ キャッシュ (GAC: Global Assembly Cache) にインストールされていたとしても、[参照の追加] ダイアログ ボックスに、すべてのアセンブリが自動的に表示されるわけではありません。[参照の追加] ダイアログ ボックスはパスに基づいており、表示するアセンブリの場所を示すレジストリ キーを追加する必要があります。
というのがあったので、おそらくこちらが原因ではないでしょうか?
再度の回答ありがとうございます。
表示されないのは、そういう理由もあるのですね。
ただ、GACにあるファイルでなくて、インストールの元になっているファイルのパスで動くとなると、GACの意味がないのでは?という疑問がでてきます。
これについては別の質問で再度聞いてみたいと思います。
当初の疑問はクリアされたのでここで〆たいとおもいます。
ありがとうございます。
No.1
- 回答日時:
.NETアセンブリの参照の追加は
[プロジェクト]-[参照の追加]-[.NETのタブ]から行います。
GAC(C:\Windows\assembly\)には
.NET以外のアセンブリも登録されています。
エクスプローラでGACを開いたとき、
プロセッサのアーキテクチャがMSILのものが.NETアセンブリです。
.NET以外のアセンブリならコンパイル後の.NETアセンブリから外部参照する形になるので、参照するアセンブリがGACに登録されていないアセンブリなら、コンパイル後の.NETアセンブリと同じディレクトリ内にある必要があります。
参考URL:http://www.atmarkit.co.jp/fdotnet/technology/idn …
この回答への補足
回答ありがとうございます。
現状の状況としては、
目的のアセンブリ:エクスプローラでGACに表示されているが、[プロジェクト]-[参照の追加]-[.NETタブ]に表示されていない。
回避方法としては、ハードディスク内を目的のアセンブリ名で検索して、[参照タブ]で直接参照追加する。
なのですが、これが普通なのでしょうか?
自分としてはGACに登録されていれば、すぐにImportsやusingで使えたほうが使いやすいしわかりやすいかと思うのですが。そうでないと複数のバージョンがハードディスク内にあった場合、複数のPCで開発していた場合、参照設定のミスが生じやすいかと思うのです。GAC内なら複数のバージョンでも一覧にバージョンも明記されているので間違う確率も低くなると思うのですが。
もうしばらく、回答を待ちたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- フリーソフト イーファンビューでwebpファイルが開けません 1 2022/07/12 07:07
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/12 16:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/26 17:13
- C言語・C++・C# PC画面を録画するプログラムでdllの読み込みエラー 1 2023/04/22 08:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ManagementClassが見つからない。
-
【VB.NET】開いているフォルダ...
-
意味不明の実行時エラーで困っ...
-
C#ソースをCSCファイルにてコン...
-
VB2013で作成したプログラムの...
-
MAPIとOEのユーザー切替について
-
vbaでPDFファイルが印刷されない
-
VBが動かなくなりました・・・
-
印刷ダイアログを表示させない方法
-
H8マイコンで、ファームウェア...
-
ウェーブレット変換に関して
-
C#VB、exeに埋め込んだexeの実行
-
エスケープ・シーケンスによる...
-
「読み込み違反」が起きたとき...
-
プロパティーの属性取得
-
単位計算のアルゴリズム
-
Windows PowerShellでC言語を実...
-
OS vistaでVB5アプリケーション...
-
【VB2005】別のプログラムから...
-
VB.NET(2017)で インストーラを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
意味不明の実行時エラーで困っ...
-
ManagementClassが見つからない。
-
VB.NETでDLLを読み込ませる時に...
-
VB.NETで参照設定したDLLの修正...
-
VB.Net リビルド 意味不明なメ...
-
VB2010で作成したdllからtlbが...
-
C#ソースをCSCファイルにてコン...
-
オブジェクト(dll)のレジストリ...
-
IT初心者です 仕事で、vb.netで...
-
Using System.Drawing がうまく...
-
VB2008→VB2010でエラーが出てま...
-
VBAの参照設定について
-
DLLを作成してVBAから使用する...
-
ビルドが実行できない 先へ進...
-
MS Visual Studio 6.0のEnterpr...
-
Windows10のVBAでDirectX 8が使...
-
VB6.0で作成したプロジェクトの...
-
Excel-VBAでDSOFile.dll使える?
-
ActiveMovie Control Objectを...
-
EXCEL2000でVBAでWinsockをしたい
おすすめ情報