2009-08-06 7 views
0

これを完全に熟読し、返信する前に考えてください。それは簡単な修正かもしれないが、私はそれを非常に疑う。あなたはここのシナリオと私が私を助けることができるように完全に説明している葛藤を理解しなければなりません。ナイトメア(ナイト・オブ・ザ・リビング・デッド-WAP変換):リファレンス/レシプロ・エラーの無限ループ(不可能なパズル・ソルブ?)

私はWebサイトコードをWAPプロジェクトにコピーしました。私は参照エラーを取り除いた。私を信じて、すべての単一のエラーをチェックした。ここに私の問題と仮説があります(それは解決できません):

私たちには多数の公共財産があるマスターページがあります。

ほとんどの.aspx.csコードは、Masterのプロパティを参照しており、それを使用しています。

しかし、私たちのマスターページでは、私がマスターページに登録したユーザーコントロールタグまたはカスタムコントロールタグを認識できません。レジスタタグは正常です。これらはすべて、Webサイトプロジェクト(マスターページは、ユーザーコントロールとカスタムコントロールの参照を参照していましたが、すべての.aspx.csはマスターページのパブリックプロパティjsutを参照していました)ではすべてがうまく参照されていました。

これについて考えると、このWAP変換で決して解決できない無限ループかもしれません。どうして?私の見方によると、マスターページで少数のユーザーコントロールやカスタムコントロールを参照できない場合、マスターページはコンパイルされません。マスターページがコンパイルできず、これらのユーザーコントロールとカスタムコントロールを参照できない理由は、「その他のエラー」があり、マスターページのパブリックプロパティを参照するエラーが発生するため、.aspx.csファイルのエラーが発生するためです。本当の問題。両方ともお互いに関係しており、関連しているので解決できない問題があるので、どちらもエラーになっているようです!私のドリフトをキャッチしますか?

私はこれを見通しにするために例/類推を挙げましょう。

MyMasterPage.aspx

(これのコード例)右

<%@ Register Src="~/WebControls/User/Navbar.ascx" TagName="Navbar" TagPrefix="ac" %> 

<%@ Register TagPrefix="am" Namespace="[ourglobalnamespace].Controls.Custom" %> 

<tr> 
    <td valign=top runat="server" id="tdNavBar"><ac:Navbar runat="server" id="navbar"></ac:Navbar></td> (this references a user control and is blowing up) 
</tr> 

... 

<tr> 
     <td><am:NavigationPath runat="server" id="navPath" Seperator="&raquo;" /></td> (this references a custom control and is blowing up) 
    </tr> 

今、私はエラーが、それは私が

を理解することはできません何らかの理由で、上記のコントロールのいずれかを認識しないと言ってます

MyMasterPage.aspx.cs

public BL.Store Store 
    { 
     get { return this.store; } 
    } 

    public BL.Product Product 
    { 
     get { return this.product; } 
    } 

マスターページのコードを公開して公開するいくつかのパブリックプロパティを表示するだけです。これらのプロパティは、コード全体でクラスの背後にある.aspx.csコードで参照され、使用されます。

例.aspx。CSマスターページのプロパティを使用して:

protected override void OnInit(EventArgs e) 
    { 
     int productID = Master.ProductID; 
     product = Master.Product; 

     protected override void OnInit(EventArgs e) 
     { 
      int productID = Master.ProductID; 
      product = Master.Product; 
     ... 

だから私は今1500+主として2つの理由にエラーを持っている想像し、彼らは(私はすべてのことを固定)参照エラーのbecuaseされていません。

マスターページはしたがって、マスターページのプロパティへの参照をコンパイルすることはできませんので、.aspxのページは爆破のために1)マスターページ

2)コードビハインドをコンパイルすることはできません背後にあるコードを引き起こします爆破する

両方のエラーが実際にお互いに固定されている場合、どうすればこの問題を解決できますか?それは不可能だ!

3)これらの問題がある残りのファイルについては、デザイナーファイルを生成できません。だから私はマスターページとそれらのユーザーコントロールを.designer.csファイルが正常に作成されるようにWebアプリケーションに変換することができません

私たちは本当に3つの問題があります。エフェクトの後に1 & 2)マスターページが吹き飛ばされることから生じるすべての問題をここで解決する方法はわかりませんが、コードビハインドページが吹き始めているマスタページのプロパティを吹き飛ばしているために爆発する可能性がありますアップ!私のドリフトをキャッチしますか?

私は見落としてしまった単純なものだと思っていますが、私はこれで数日を過ごしました。この混乱を解決するために何も見ません。

誰かがこの変換の痛みを取り除くために私を撃つ。もし誰かが私がこれを解決するのを助けることができれば、私はあなたにビールの手紙を送るだろうと誓う!

+4

「今は理解できない理由で上記のいずれのコントロールも認識しないというエラーが表示されます。正直なところ、あなたの努力は、状況を描写するのではなく、これを理解しようとする方が良いと思います。 – womp

+0

おい、私はこれに2フィンガの日を過ごした時、私はそれを描くことはできないと思っている。私はそれを楽しみたい。私の神様、私はポストをいくらか楽しんでいました。現実感を感じ、疲れを癒してください。 – PositiveGuy

+0

とwompでは、パッシブでパワフルなラメコメントの代わりにお手伝いしましょう。 – PositiveGuy

答えて

1

トラブルシューティングに役立つと思われます。

  • 新しいテストプロジェクトを作成します。
  • マスターページをコピーします。
  • そこにある参照問題を解決してください。
  • マスターのみで成功したビルドを手に入れよう
  • Webコントロール用に既存のアイテムを追加してください。
  • コンテンツページの1つに既存のアイテムを追加します。
+0

それを試してみて、違いはありませんでした。私は思っています。 Webアプリケーションプロジェクトでは、WAPプロジェクトのフォルダ内にカスタムコントロール(ユーザーコントロールについては言及せず、カスタムコントロール用のクラス.csを使用しています)を持たせることも、独自のアセンブリに移動する必要がありますあなたのWAPプロジェクトから参照されていますか? – PositiveGuy

1

私の経験では、通常、「本当の」エラーがファイル内のどこかに埋め込まれています。彼らは見つけるのはかなり難しいでしょう!

実際に循環的なビルドの問題があると思われる場合は、ビルドするものが得られるまでプロジェクトから項目を除外してからゆっくりと追加してください。メソッドやメソッド本体をコメントアウトする必要があります。いくつかのクラス間で循環参照があります。

循環参照がプロジェクト間で許可されていませんが、(それはあなたが持っているものだように聞こえる)プロジェクト内で、あなたはそれらを持つことができます。

編集を追加します。それらはかなり一般的であり、ビルドプロセスは通常対処できます。

また、1500エラーがあると主張しています。私はVisual Studioが約200でカウントを停止すると思いましたか?限界がどこにあっても、おそらくそれを打つでしょう。おそらく、あなたの「真の」エラーがエラーリストに表示されていない可能性があります。

+0

うん、それは約2週間かかるだろう。私たちのプロジェクトは大変です。 – PositiveGuy

+0

私たちには、言い換えれば循環参照がありません。私がここで絡み合っていると思うだけの依存関係です。 – PositiveGuy

+0

(私の経験では、通常は「本当の」エラーが山の中のどこかに埋め込まれていますが、それは見つけるのがかなり難しいでしょう!)これは今日私が一日中探していたものです。何も見つかりませんでした。 – PositiveGuy

1

私の経験では、WebサイトをWAPに変換する際の苦痛のほとんどは、名前空間の不一致によるものです。マスタページとそれを使用するページが同じ名前空間にあることを確認します。また、aspxファイルがInherits属性のコードビハインドファイルの正しい名前空間を参照していることを確認します。

+0

相対的に言えば、彼らは同じ名前空間にいなければなりません。たとえば、私のコントロールのいくつかは[globalnamespace] .Controls.Userにあり、いくつかのコードは[globalnamespace]にあります。つまり、同じ名前空間内のすべてのクラスを[globalnamespace]だけで意味するわけではありません。あなたが何を意味するか分かりません。 – PositiveGuy

+0

(そして、aspxファイルがInherits属性のコードビハインドファイルの正しい名前空間を参照していることを確認してください)そうですね、それは確かです。それは私が1日目に確信したことの一つです – PositiveGuy

関連する問題