- - PR -
参照設定がうまくいきません。
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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 |
|
投稿日時: 2005-01-05 20:54
いまいちわかりにくいのですが、、、
ですね?それで、“Web ユーザー コントロール”でいいですか?“Web カスタム コントロール”ではないですね?Webユーザコントロールだと、“同じWebアプリケーションでのみ使用可能”ですが、それはOkですね? それで、VB.NETということですが、名前空間の設定、および参照はどのように行っているでしょうか。名前空間の設定は、2カ所で行うのですが、それは大丈夫ですか?つまり、“プロジェクトのオプション”として設定するルート名前空間と、各ソースファイルで設定できるルート名前空間以下の名前空間です。ソースファイル中で“aaa.bbb”と設定しても、ルート名前空間が“root”となっていれば、参照するときには“root.aaa.bbb”としなければなりません。このルート名前空間は、デフォルトでプロジェクト名になっています。もちろん、1つのアプリケーションですから、プロジェクトのごとのルート名前空間を同じにしておけば、“aaa.bbb”で参照できます。 _________________ |
|
投稿日時: 2005-01-06 10:44
Jittaさん回答ありがとうございます。
つたない説明で申し訳ありません。 WEBカスタムコントロールです。 また名前空間はソース上に書いていました。 ご指摘されたようにルート名前空間にアプリケーション名がついていました。これをクリアしたところ問題なく名前解決ができました。 MSのヘルプも見つけ熟読いたしました。どうも初歩的な問題だったようです。 ありがとうございました。 |
1