- PR -

参照設定がうまくいきません。

1
投稿者投稿内容
FX
常連さん
会議室デビュー日: 2004/12/06
投稿数: 49
投稿日時: 2005-01-04 14:06
VB.NETでWEBアプリを作成しています。
自作のWEBコントロールを作成して、他のプロジェクトで使用しています。
最初、作成中のWEBページにはネームスペースを設定していなかったのですが、ネームスペースを設定したら、ビルドエラーがでるようになってしまいました。エラーメッセージは以下の通りです。
「(17): 型 'aaa.bbb.common.Web.UI.ErrorHeaderControl' が定義されていません。」

作成中のプロジェクトで行った手順
1.プロジェクトの新規作成を行い、aaa.bbb.common.Web.UIのコントロールがあるDLLを参照設定に追加

2.ツールボックスのカスタマイズ−.NET Frameworkコンポーネントに同DLLを追加してチェック

3.追加したコントロールを画面上にドラッグ&ドロップで追加

4.ビルド&実行で問題なし

5.同ページにネームスペースの設定を行う。「ccc.ddd.Web.UI」

6.貼り付けたコントロールの参照エラー 以下はエラー箇所のソースです。
「Protected WithEvents webctlErrorHeader As aaa.bbb.common.Web.UI.ErrorHeaderControl


確認などした事
・オブジェクトブラウザでaaa.bbb.common.Web.UIを見るとErrorHeaderControlは問題なく見えますし、メンバーも確認できます。

・手書きでクラス名を書こうとしましたが、インテリセンスで候補がでませんでした。
 (aaa.と入力してCTL+SPACEでも候補名がでません。)

・imports aaa.bbb.common.Web.UIを追加してクラス名だけとしたらOKとなりました。
「Protected WithEvents webctlErrorHeader As ErrorHeaderControl」

・参照を削除して参照のし直し (変わらず)
・プロジェクトを保存して再起動(変わらず)

とりあえずはネームスペースをimportsで定義してクラス名だけの宣言でビルドは通ったのですが、なぜフルパスで指定するとエラーとなってしまうのか?また、なぜ自クラスのネームスペースを設定したらこうなってしまったのか(どうして元に戻しても駄目なのか)がわかりません。

どなたかご存知でしたらお教えください。


環境
OS:WindowsXP SP2
IDE:VisualStudio .NET2002
言語:VB.NET

自作コントロール
ネームスペース:aaa.bbb.common.Web.UI
クラス名:ErrorHeaderControl

作成中プログラム
ネームスペース:ccc.ddd.Web.UI
クラス名:gyoumu1
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-01-05 20:54
 いまいちわかりにくいのですが、、、

  1. ASP.NET + VB.NET
  2. Webユーザコントロールをプロジェクトとして作成
  3. そのWebユーザコントロールを使用する別のプロジェクトを作成
  4. Webユーザコントロールの名前空間を変更
  5. 名前空間の解決が出来なくなった

ですね?それで、“Web ユーザー コントロール”でいいですか?“Web カスタム コントロール”ではないですね?Webユーザコントロールだと、“同じWebアプリケーションでのみ使用可能”ですが、それはOkですね?

 それで、VB.NETということですが、名前空間の設定、および参照はどのように行っているでしょうか。名前空間の設定は、2カ所で行うのですが、それは大丈夫ですか?つまり、“プロジェクトのオプション”として設定するルート名前空間と、各ソースファイルで設定できるルート名前空間以下の名前空間です。ソースファイル中で“aaa.bbb”と設定しても、ルート名前空間が“root”となっていれば、参照するときには“root.aaa.bbb”としなければなりません。このルート名前空間は、デフォルトでプロジェクト名になっています。もちろん、1つのアプリケーションですから、プロジェクトのごとのルート名前空間を同じにしておけば、“aaa.bbb”で参照できます。

_________________
FX
常連さん
会議室デビュー日: 2004/12/06
投稿数: 49
投稿日時: 2005-01-06 10:44
Jittaさん回答ありがとうございます。

つたない説明で申し訳ありません。
WEBカスタムコントロールです。

また名前空間はソース上に書いていました。
ご指摘されたようにルート名前空間にアプリケーション名がついていました。これをクリアしたところ問題なく名前解決ができました。
MSのヘルプも見つけ熟読いたしました。どうも初歩的な問題だったようです。
ありがとうございました。
1

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