App_Codeフォルダーのサブフォルダーのクラスが正しく検出されないのはなぜですか?

StackOverflow https://stackoverflow.com/questions/155105

質問

クラスファイルをApp_Codeフォルダーのサブフォルダーに配置すると、次のエラーが表示されます。

errorCS0246:型または名前空間名 'MyClassName'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?)

このクラスは名前空間にまったくありません。アイデアはありますか?

役に立ちましたか?

解決

web.configのコンパイル要素にcodeSubDirectoriesを追加する必要があります

<configuration>
    <system.web>
      <compilation>
         <codeSubDirectories>
           <add directoryName="View"/>
         </codeSubDirectories>
      </compilation>
   </system.web>
</configuration>

他のヒント

ファイルのBuildActionプロパティを確認します。これは「コンパイル」に設定する必要があります

IIS(またはWebサーバー)でアプリケーションとしてフォルダーを設定していない可能性はありますか?そうでない場合、使用されるApp_Codeは parent フォルダー(または次のアプリケーション以降)からのものです。

フォルダーがアプリケーションとしてマークされ、ASP.NETの正しいバージョンを使用していることを確認します。

正しい方法ではないかもしれませんが、私はそれが最も簡単だと思います。

通常どおりメインフォルダーにクラスを作成し、マウスでサブフォルダーに移動します。再コンパイルするとすべてが正常になります。

app_codeにフォルダーを追加すると、デフォルトの名前空間をルートとして使用し、フォルダーごとに追加することを正しく思い出せば、それらは異なる名前空間によって分離されます。

Visual Studio(少なくとも2010、ただし過去のバージョンも思い出します)では、ソリューションエクスプローラー内でフォルダーを右クリックし、[プロジェクトに含める]を選択できます。

各ファイルの[プロパティ]タブで(または一度にすべてを選択して)、[コンパイル]を選択します。 &quot;ビルドアクション&quot;プロパティ。

これは私のために働いた。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top