- PR -

System.Webなどの名前空間にDLLを作りたい

投稿者投稿内容
eos b400
会議室デビュー日: 2005/10/27
投稿数: 5
投稿日時: 2005-10-27 18:11
簡単なDLLを作成して、GACに登録しました。
(名前空間はSystem.Webにしてあります)
Public Class Class1
Public Function method1() As String
Return "test"
End Function
End Class

私の想像では、ASPでは自動的にSystem.Webがインポートされるので
自分の作ったDLLが名前空間の指定なしで使えると思ったのですが、
クラス一覧には出てきません。

私が何か根本的な仕様を勘違いしてると思いますが、分かる人、いら
っしゃいますでしょうか?
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-10-27 18:25
こんにちは。

それがありかなしかは置いといて。
そのアセンブリを参照設定してないから、とか。
葉瀬崎浩樹
大ベテラン
会議室デビュー日: 2005/06/28
投稿数: 115
お住まい・勤務地: 兵庫県
投稿日時: 2005-10-27 18:28
根拠の無い推測を書いてみます。
GACよりも、プロジェクトに含まれている
本物のSystem.WebのDllが優先されているだけでしょう。
そして、自作クラスのDllは参照設定してないとか。

ここからは個人的意見です。
名称のバッティングを避けるために、名前空間が用意されてるわけですよね。
それなのに、わざわざ自作クラスの名前空間を、System.Webにするのどうかと。

好奇心から実験されているのなら、余分な忠告でした。
ゴメンナサイ。
#むしろ逆に、System.Webの参照を外したらどうなるかとかが気になったりする

追記
レスをしている割には、GACの有効な場面を知らなかったりする私。
自身の後学のためリンクしとこ。。
グローバル・アセンブリ・キャッシュ

[ メッセージ編集済み 編集者: 葉瀬崎浩樹 編集日時 2005-10-27 18:43 ]
eos b400
会議室デビュー日: 2005/10/27
投稿数: 5
投稿日時: 2005-10-27 18:38
ご意見ありがとうございます。

ASPで上司にそういうことはできないかと訪ねられたので試しています。

参照の追加をすれば可能ですが、bin配下にライブラリを置きたくない
らしいのでGACに登録すればと思ったのですが。
System.Webではなく、適当な名前空間でも構いませんが、やはりBin配下に
ライブラリを置くしかないのでしょうか?
葉瀬崎浩樹
大ベテラン
会議室デビュー日: 2005/06/28
投稿数: 115
お住まい・勤務地: 兵庫県
投稿日時: 2005-10-27 18:45
実務でGACに登録している場面を見たことがあります。
なぜそうしたのかの理由までは、ちょっと存じませんが。。

先のリンク先にも、そのあたりが載っているのでご覧になってください。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-10-27 18:47
GACに登録したアセンブリを参照してもプライベート部分にコピーされないのでは?
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2005-10-27 18:56
eos b400さん、こんばんは。

引用:

簡単なDLLを作成して、GACに登録しました。
(名前空間はSystem.Webにしてあります)


GAC のアセンブリは、公開キー トークンを含む厳密な名前に基づいて参照されるからですね。

詳しくはこの辺↓を参照して下さい。
「.NET Framework 開発者ガイド」-「アセンブリ名」
eos b400
会議室デビュー日: 2005/10/27
投稿数: 5
投稿日時: 2005-10-27 19:23
皆さん本当にいろいろありがとうございます。リンク先が勉強になります。

>GACに登録したアセンブリを参照してもプライベート部分にコピーされないのでは?

そうですね。勘違いしてました。
名前空間を適当なものに変えてみて参照の追加で出来ました。

あとすいませんっ! もうひとつ質問があります。
今「参照の追加で出来ました」と書きましたが、その「参照の追加」
と同じことを、VSの環境を使わずに(テキストエディタだけで)書くには
どのようにすればいいのでしょうか? 今はVSの環境を使わずに開発を
してますので。(納品の形態がそうらしいので) importsは全然違う
みたいで。

スキルアップ/キャリアアップ(JOB@IT)