私は、たくさんのファイルを含むウェブサイトを含むソリューションを持っています。Visual Studio DLLを公開するときに、いくつかのクラスが欠けている
最近、サイトに新しいウェブページを追加しなければならなかったことが起こりました。新しいファイルでソリューションを構築すると、すべてが機能します。 Web公開ウィザードを使用しようとすると、プロセスが分割されます。
基本的に、これは何が起こるかです:
- 新しいページ(例えばマイページ)はVisual Studioでローカルにwebproject
- ビルドに追加し、すべてがすべての権利です。最終アセンブリには、コードベースに含まれるすべてのクラスが含まれます。
- Webサイトをファイルシステムに公開する(右クリックしてCSProjectからパブリッシュする)と、プリコンパイルによって "myPage"クラスが存在しないというエラーがスローされます。
は、私は3つのいつもの場所にDLLのバージョンを(例えばmyWebSite.dll)チェックしました:
- \ binに - >コンパイルされたコードは、 "マイページ" クラスを含め、完全である
- \ OBJ \ Debug \ Package \ PackageTmp \ bin - >コンパイルされたコードが完全ではなく、新しいクラスが "MyPage"クラスを含むMISSINGです。
- \ obj \ Debug \ AspnetCompileMerge \ Source \ bin - >コンパイルされたコードは完全ではなく、新しいクラスはMISSING "MyPage"クラスを含む
'obj'フォルダは最終的なバイナリコードを含みません。これは本質的には一時的なフォルダです。公開は 'obj'から何も使用しません。どのようにWebサイトを公開しましたか?どのような設定を使用しましたか?おそらく間違ったフォルダを選択しましたか?どのバージョンのVisual Studioを使用していますか? –
返信いただきありがとうございます。 VSバージョン2010年と2012年、全く違いはありません。ウェブサイトはローカルで公開され、ファイルシステムに公開されます(プロジェクト名を右クリックして公開します)。ローカルフォルダ(c:\ publish)、すべてのファイルを事前に削除して、アプリケーションをプリコンパイルします –
あなたはソリューションをきれいにして再構築しましたか?愚かに聞こえるかもしれませんが、時にはVSはDLLが変更されていてそれを上書きしないことを忘れるでしょう。 – user1666620