2009-08-26 9 views
4

私はDotNetNukeイベントモジュールのハックに取り組んでいます。私はソースをセットアップして、A-OKを変更せずにビルドしました。しかし、EventMonth.ascxファイルを変更すると、Visual Studioはそれに関連付けられた.designer.vbファイルを更新し、間違ったタイプの2つのオブジェクトを宣言します。ASP.NETで自動生成された.designerコードの種類が正しくないのはなぜですか?

Protected WithEvents EventIcons As Global.System.Web.UI.UserControl 

そして、次のようになります:

Protected WithEvents EventIcons As Global.DotNetNuke.Modules.Events.EventIcons 

明らかに、これが仕事に行くのではありません...コンパイラは(当然)EventIconsがで使用されているエラーをスローそれはこのようになりますコード。この原因は何ですか?私はそれを手作業で簡単に修正することができましたが、もちろん後で改めて破ることになります。コントロールのIDがクラス名と同じであるという事実はないと思います。なぜなら、同じことが同じコントロールの別のインスタンスで起こりますが、別の名前が付いているからです。

更新:OK ...参照時刻が設計時に参照されたユーザーコントロールが見つからないため、これが起こっていると思います。しかし、それは明らかに、実行時に動作します:

<%@ Register TagPrefix="evt" TagName="Icons" Src="~/DesktopModules/Events/EventIcons.ascx" %> 

これは論理的な意味があります...しかし、私は質問が続いなっ推測する「デザイン時に解決〜何?」私はこれを単に "EventIcons.ascx"に変更することができ、OKコードを生成すると思います。しかし、それは実行時に動作するのだろうか? :|

+0

アプリケーションルートの問題または解決策に関係しない関連問題については、http://stackoverflow.com/q/8677453/292060も参照してください。 – goodeye

答えて

8

プロジェクトはアプリケーションルートで起動しないため、~を正しく解決するには、実際のアプリケーションルートの場所をプロジェクトに伝える必要があります。プロジェクトのプロパティの[Web]タブに移動し、[Servers]ヘッダーの下の[Use Local IIS Web server]が選択されていることを確認します。プロジェクトURLを特定のプロジェクトのURLに設定します(例:http://localhost/DotNetNuke_2/DesktopModules/Events)。次に、アプリケーションのルートURLを上書きして、アプリケーションのルートURL(つまりhttp://localhost/DotNetNuke_2)に設定します。これにより、Webアプリケーションプロジェクトは、これらのコントロールを見つける方法を知ることができます。

Src属性はコントロールに関連しているため、アプリケーションのルートから指定するのではなく、"EventIcons.ascx"に設定すると問題ありません。

+0

ビンゴ。明らかに、〜は実際のアプリケーションホストの外側からその価値を得る必要があります。ありがとう! – Bryan

0

〜は、アプリケーションフォルダのルートに解決されます。

関連する問題