29

そのため、設計中の新しい Web サイトの App_Code フォルダーで、非常に奇妙な問題が発生しています。

App_Code フォルダーの名前空間内に基本クラスがあります。名前空間をセットアップしてクラスからオブジェクトを作成すると、IDE ですべて正常に動作します。ホバーするとクラスの概要が表示され、「定義に移動」をクリックするとクラスファイルに移動します。また、ローカルでも問題なく動作します。

ただし、サイトをサーバーにロードすると、そのページにアクセスすると次のエラー メッセージが表示されます。

行 10: System.Web.UI.WebControls を使用します。
行 11: System.Web.UI.WebControls.WebParts を使用します。
12行目:xxxx.xxxxを使用

コンパイラ エラー メッセージ: CS0246: 型または名前空間名 'xxxxxx' が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

クラスファイルがそこにあるという事実を知っています。誰が何が起こっているのか知っていますか?

編集:

ジョン、はい、それは 2.0 サイトです。

4

6 に答える 6

66

クラスがコンパイルされていないという問題。この問題は、App_Code フォルダー内の任意のクラスのプロパティに移動し、「ビルド アクション」プロパティを「コンテンツ」から「コンパイル」に変更するだけで解決できます。

于 2010-11-11T21:16:12.153 に答える
22

アプリケーションが Web サイト プロジェクトではなく Web アプリケーション プロジェクトである場合、コード ファイルは App_Code フォルダーにあるべきではありません (ばかげた設計だと思います)。コードか何かという名前の新しいフォルダーを作成し、そこに入れます。

大量の古い .Net Web サイトをアプリケーション プロジェクトにアップグレードしたときに、あらゆる種類の問題が発生しました。

于 2008-09-18T03:23:16.520 に答える
2

これは私に起こったことであり、解決策は、App_Code (および App_Data) をサーバーのルートではなく、他のすべてを保持するサブフォルダーに配置することでした。ルートにある必要があります。

于 2010-10-29T19:26:12.440 に答える
1

サイトの公開方法によっては、App_Code を検索せず、代わりにクラスを含む Bin フォルダーで DLL を検索します。Web サイトをサーバーにどのように転送しましたか?

于 2008-10-04T21:53:49.813 に答える
1

参照されているアセンブリまたはコード ファイルでコンパイル時エラーが発生するたびに、IDE パーサーとコンパイラの間で不一致が発生することがあります。そのような状況では、IDE はタイプを正しく識別し、それらを完全にサポートしますが、コンパイラは参照されるオブジェクトを作成できなかったため、参照されるオブジェクトが存在しないと警告します。

誰かを非難するつもりはありませんが (これは推測にすぎません)、参照するコード ファイルにエラーがないことを確認する必要があります。

于 2008-09-18T03:53:21.847 に答える
0

続くもののために...私はこれと同じ一連の問題を抱えていましたが、App_Codeでクラスに「HTML」という名前を付けたことが原因でした。コンパイラは問題が何であるかを教えてくれなかったので、それが単なる名前の競合であることを理解するのに長い時間がかかりました.

于 2015-05-27T15:59:08.090 に答える