CodeBehindによるファイル追加で発生する問題
ASP.NETのプロジェクトファイルに既存ファイルを追加する場合、通常はVisualStudioのソリューションエクスプローラーから追加します。しかし、状況によってはOSのエクスプローラー上でファイルの移動をする場合があります。
この場合、ASP.NETのプロジェクトがCodeFileで作成してあれば特に問題になることはありませんが、CodeBehindで作成している場合は問題になります。CodeFileは動的コンパイルによって構成ファイルをVisualStudioではなく、ビルド、発行時にファイルが含まれません。これはCodeFileが動的コンパイラに対し、CodeBehindはビルド処理によるコードファイルのコンパイラとなっている為です。
つまり、CodeBehindはあらかじめビルドしたアセンブリ(dll)に対してWEBサーバーが応答する形ということです。
これを回避するためには、追加した後に以下の手順でファイルをプロジェクトに含める必要があります。
1. エクスプローラを使って、追加したいフォルダをプロジェクトフォルダの中にコピーする
2. ソリューションエクスプローラで「すべてのファイルを表示」をONにする
3. フォルダが見えると思うので、それを右クリックして「プロジェクトに含める」