ASP.NETの初心者がWebサイトアプリのコンパイルに関して悩んでいます

このQ&Aのポイント
  • ASP.NET初心者がC#で開発されたWebサイトのメンテを引き継ぎ、コンパイルに関して悩んでいます。
  • SQL Serverのデータベースにフィールドを追加し、Webでの表示と更新を行いたいがうまくいかない問題が発生しています。
  • Visual Studioのデバッグ実行時に、ファイルの変更に関連してコンパイルエラーが発生する問題があります。また、.aspxファイルのフィールド追加に関して自動更新されない問題もあります。バージョンの違いが原因かもしれません。
回答を見る
  • ベストアンサー

Webサイト アプリのコンパイル他

ASP.NETの初心者です。 職場で急にC#で開発されたWebサイトのメンテを引き継ぐことになり、悪戦苦闘しています。 開発環境は.NET Framework ver.3.5、Visual Studio 2008、サーバーはISSです。 SQL Serverのデータベースにフィールドを追加し、そのデータの表示と更新をWebで行うよう ソースを変更しましたが、ブラウザーでサイトを開いてテストしたところ、新しく追加した フィールドへの読み書きがうまくいきません。 Webサイトアプリケーションは実行時に自動コンパイルされるため、事前にビルドする必要は 無いはずですが、もしコンパイルでエラーが発生すると、実行ファイルは作成されず、前回 作成に成功したファイルが使われるのでしょうか? .aspxファイルで変更したUIは更新されるが、.csファイルで変更した動作に関しては古いビルド ファイルを実行しているため、変更が反映されないという認識で合っていますか? Visual Studioでデバッグを実行すると、変更を加えていないファイルで、コードビハインドの クラスの型がLoadできないという エラーがいくつか検出されます。 あるファイルを変更したために、それを参照もしていない別のファイルでコンパイルエラーが 発生するということもあるのでしょうか? それとも単に、前任者がバグを残していたということでしょうか。 また、.aspxファイルにフィールドを追加すると、対応する「.aspx.designer.cs」は自動更新される ものなのでしょうか? テスト環境からローカルディスクにアプリケーションのすべてのファイルをコピーし、編集しましたが、 ローカルPCではVisual Studio 2008ではなく、2010を使用しています。 このバージョンの違いが、自動更新されない原因なのでしょうか? 知識や経験が乏しいため的外れな質問かもしれませんが、周りにASP.NETやC#の開発に 詳しい人がいないため、本当に困っています。 どなたか上記の疑問点にお答えいただければ幸いです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • onos
  • ベストアンサー率81% (127/155)
回答No.1

> また、.aspxファイルにフィールドを追加すると、対応する「.aspx.designer.cs」は > 自動更新されるものなのでしょうか? えと、ソースコード中に「.aspx.designer.cs」が存在しているのですね? であれば、「Webサイトプロジェクト」ではなく、「Webアプリケーションプロジェクト」として 最初のプロジェクトが構築されています。 この場合、csコード側は一度ビルドしてコンパイルしたdll(binフォルダ内に生成される)を 作ってあげないといけません。 > Visual Studioでデバッグを実行すると、変更を加えていないファイルで、コードビハインドの > クラスの型がLoadできないという エラーがいくつか検出されます。 こっちの原因はちょっとわかりませんね。 プログラム用の環境の作り方に問題があるせいかもしれません。 > テスト環境からローカルディスクにアプリケーションのすべてのファイルをコピーし、編集しましたが、 > ローカルPCではVisual Studio 2008ではなく、2010を使用しています。 > このバージョンの違いが、自動更新されない原因なのでしょうか? 対象とするフレームワークのバージョンがあっていればVSのバージョンの違いは問題ないですが。。。 アプリケーションのすべてのファイルとしては.csprojとか.slnとかも含まれてますかね? 含まれていればslnファイル叩いてVSを起動することで比較的正しい環境ができそうですが。 環境の構築については実際のファイルみないとアドバイスも難しいので、まずはWebサイトと Webアプリケーションというプロジェクトの違いについて考慮して調査されるとよいかと 思います。

NY_717
質問者

補足

早速の回答、感謝致します、 はい、各aspxファイルに対応するaspx.designer.csファイルが存在していますし、 フォルダに.csprojファイルも含まれていますので、Webサイトではなく Webアプリケーションというのが正解ですね。 .slnファイルは見当たりませんが、binフォルダ内にdllファイルもありました。 ところがこの.csprojファイル、エクスプローラでダブルクリックするとVisual Studio 2005が立ち上がりますが、ソリューションエクスプローラに何も表示されません。 同じマシンにインストールされているVisual Web Developer 2008 Express Editionでは、 開く対象がWebサイト(フォルダ)かファイルのみで、.csprojファイルを指定できない のですが、Webアプリケーションの場合でもフォルダを指定すればいいのでしょうか? それと、.aspx.designer.csファイルは、コンパイルに成功したタイミングで更新されるの でしょうか? またまた質問ばかりで申し訳ありません。 なんとかコンパイルエラーを無くして新しいdllを生成できるよう、もう少し頑張ってみます。 ご親切にいろいろアドバイスいただき、本当にありがとうございました。

その他の回答 (4)

  • onos
  • ベストアンサー率81% (127/155)
回答No.5

えと、aspnetさんが記入していることについて、ちょっと補足というか訂正というか。。。 > これ以外にも、最近は「ASP.NET MVCアプリケーション」や「ASP.NET Web Page」もある。 これはWebサイトプロジェクトとWebアプリケーションプロジェクトの話とは別になります。 「ASP.NET MVCアプリケーション」は必ずWebアプリケーションプロジェクトとして構築されます。 「ASP.NET Web Page」は必ずWebサイトプロジェクトとして構築されます。 「ASP.NET MVCアプリケーション」「ASP.NET Web Page」と横並びになる概念は 「ASP.NET WebForm」です。 ごっちゃにするとわけがわからなくなりますからきちんと区別してください。 > 「Webサイト」の場合は、「App_Code」の中だけ事前コンパイルされるが、*.dllは生成されない。 いいえ、App_Codeの中もふくめて実行時にコンパイルです。 事前コンパイルはされません。 あと、*.dllはたしかに表面的(binフォルダの中)には生成されませんが、内部の仕組み的には 生成されています。 .NET Frameworkの仕組みとしてdllが生成されずに動作することはありえませんし。 生成されない、といいきっちゃうと微妙な表現となるので注意が必要だと思います。 まぁ、このあたりはあまり意識しなくてよいところではありますが。

  • onos
  • ベストアンサー率81% (127/155)
回答No.4

> Webアプリケーションとしてプロジェクトファイルを開かず、ファイル単位で開いて > 編集したりすると、こういうことが起こるのでしょうか。 ああ、やってることがわかりました。 これだとaspxファイルとaspx.designer.csの連携はしようがないので、更新されなくて当然です。 > インストールされているVWD2008では、ファイルメニューに「Webサイトを開く」と > 「ファイルを開く」しかなく、ただの「開く」というオプションがないんです。 VWD2008ですか? もしかしてVWD2005じゃないですか? VWD2005のSP1があたっていない状態だとWebサイトしか作れませんでした。 SP1の導入によってWebアプリケーションが作れるようになりました。 このあたりは以下にまとめてますので参考になれば。 http://blogonos.wordpress.com/2008/01/21/web%e3%82%a2%e3%83%97%e3%83%aa%e3%82%b1%e3%83%bc%e3%82%b7%e3%83%a7%e3%83%b3%e3%83%97%e3%83%ad%e3%82%b8%e3%82%a7%e3%82%af%e3%83%88%e3%81%a8web%e3%82%b5%e3%82%a4%e3%83%88%e3%83%97%e3%83%ad%e3%82%b8/ ということで、まずはWebアプリケーションとしてきちんと開ける環境を用意することが重要かと。 VWD2010が入っているマシンが使えるならそこでいけそうな気がしますが。

NY_717
質問者

お礼

だんだん問題点がはっきりしてきました。 まずは開発環境を整え、Webアプリケーションとしてプロジェクトファイルを開いて変更を 加えないと、すべてが正しく連携してくれないということですね。 使用しているのはVWD2008 Express EditionのVer.3.5 SP1です。 教えていただいたリンクの説明で、WebアプリケーションとWebサイトの違いがより深く 理解できました。ありがとうございます。 VWD2010はローカルのPCにしか入っていなくて、そちらにはデータDBとかがないので、 コンパイルやデバッグはテストサーバーでする必要がありますよね。 また、ローカルに全ファイルをコピーして、VWD2010で.csprojファイルを開こうとした ところ、プロジェクトを新しいバージョンに変換するダイアログが出てきました。 一度変換してしまうと、もうVWD2008では開けなくなるのでしょうか? アプリの変更の追加要件自体はそんなに複雑なものではないので、簡単に修正できるかと 思いましたが、まさか開発環境でここまで苦労するとは・・・(泣) いろいろご教授いただき、本当に感謝しております。

  • aspnet
  • ベストアンサー率79% (72/91)
回答No.3

横入りでアレですが。。 プログラム内容がどうこう言う前に、そもそもVisual Studioで正しい環境になっていないのではないかと思います。 ■そのプロジェクトはWebサイト? それともWebアプリケーション? *.csprojがあればWebアプリケーション、なければWebサイトです。 Visual Studioの正しい形式で開けていますか? 「アプリケーションを開いた」のか「サイトを開いた」か、どっち? *.designers.cs/vbは、Webアプリケーションの場合だけ存在する。 これ以外にも、最近は「ASP.NET MVCアプリケーション」や「ASP.NET Web Page」もある。 ■プロジェクトで全てのファイルが認識されているか? 「Webアプリケーションプロジェクト」では、プロジェクトに属しているファイルが*.dllに事前コンパイルされます。 「Webサイト」の場合は、「App_Code」の中だけ事前コンパイルされるが、*.dllは生成されない。他は全てランタイムコンパイルになります。 マークアップ(ASPX)上のコードは全てランタイムコンパイルされます。 ソリューションエクスプローラ上で、ファイルのアイコンが正しく見えていますか? 白紙アイコンになってない? このあたりの基本設定が狂っていると、結果が滅茶苦茶になります。

NY_717
質問者

補足

ASP.NETの知識レベルが私とあまり変わらない同僚がVSでフォルダを指定してプロジェクトを 開いていたので、てっきりWebサイトプロジェクトだと思ったのですが、実は Webアプリケーションプロジェクトだったようです。 テストサーバーではVS2005でもVWD2008でも「Webアプリケーション」としてプロジェクト ファイルを開けないのですが、VWD2008で「Webサイトプロジェクト」として開いたり、 ローカルマシンのVWD2010で開いてみた限りでは、すべてちゃんとアイコンが見えています。 ちなみにVWD2010では、プロジェクトを新しいバージョンに変換してからでないと、 「Webサイトプロジェクト」として開けませんでした。 また、バージョン変換中に多くのファイルが変換不可のエラーになりました。 主要な.aspxや.aspx.csファイルは、エラーになりませんでしたが。 理由はよくわかりませんが、なんかいろんな基本設定が狂っているようです・・・ アドバイス、ありがとうございました。

  • onos
  • ベストアンサー率81% (127/155)
回答No.2

csprojのダブルクリックでVS2005があがってくる、ということはもともとVS2005で作成されたプロジェクトなんでしょうね。 ソリューションエクスプローラーに何も表示されないというのは、、、フォルダの位置とか関係してたかな? csprojファイルをテキストエディタで開いて調整して、、、とか詳しければできることもあるかもしれませんが。。。 VWD2008からだとメニューの「ファイル」-「開く」-「プロジェクト/ソリューション」からcsprojを指定して開けませんかね? Webサイトプロジェクトではないので、フォルダの指定ではダメなはずです。 > それと、.aspx.designer.csファイルは、コンパイルに成功したタイミングで更新されるの でしょうか? これはデザイナー画面でコントロールを触った時点で更新されるはず。 たぶん正しくWebアプリケーションとして開けてないから、かなぁ。

NY_717
質問者

補足

再びコメントいただき、ありがとうございます。 もしかしたら、csprojファイルの設定内容と実際のフォルダ構成やファイルセットが 異なるため、ちゃんとプロジェクトが開けないのかもしれませんね。 Webアプリケーションとしてプロジェクトファイルを開かず、ファイル単位で開いて 編集したりすると、こういうことが起こるのでしょうか。 新しいプロジェクトを作成し、既存のすべてのファイルを追加して、プロジェクト ファイルを正しく作り直せないか、試してみます。 インストールされているVWD2008では、ファイルメニューに「Webサイトを開く」と 「ファイルを開く」しかなく、ただの「開く」というオプションがないんです。 別のマシンのVWD2010には「プロジェクトを開く」もあるのに、おかしいですよね・・・。 とりあえずすべてのファイルを編集前の状態にロールバックしました。 Webアプリケーションについて、もう少しいろいろ調べて勉強します。 ありがとうございました。

関連するQ&A

  • Vistaでの分割コンパイル時のVisual Studioの強制ビルドについて

    不思議な現象が発症してしまいました。 Vista(Home Premium)にて Visual Studio2005(学生版) や Visual Studio2008(無料版) で分割コンパイルしたプログラムを コンパイルすると、コンパイル自体は問題ないもののソースのどこも変更していない状態でも F5やビルドをすると強制的に全部のファイルがリビルドされた状態になってしまいます。 同じソースコードでもXPだと変更を自動的にソースから検出してくれて変更がなければそのファイルのリビルドは行わないでいてくれていたのですが・・。 尚、XPの開発環境とVistaの開発環境は同じものを入れています。 ファイル数が多いプログラムだとそれこそ何分もかかってしまうため、これは Vista特有の問題なのかなと思ったのですがこういうことはあるのでしょうか?

  • コンパイルメッセージが英語になってしまう

    現在 ・VS2005 ・FrameWork 3.5 ・ASP.NET で使用して開発しています。 質問させていただくのは、 ビルド時のエラーメッセージです。 VS2008で開発されたものに対してカスタマイズをするのですが、 VS2005にVS2008で作成されたソースファイルを追加してビルドをすると 追加するまではコンパイルエラーの場合は日本語で出てたのですが、 ソースを追加するとコンパイルエラーの場合は英語でメッセージが出力されます。 英語は苦手というのがあるのと、いちいち翻訳したりしていると、 開発に時間が掛かってしまうので、メッセージを日本語にしたいと思っています。 ご教授の方をよろしくお願いします。

  • visual studio 2005 でコンパイル

    初歩的過ぎる質問で大変申し訳ないのですが、 visual studio 2005(visual c++)でコンパイルが出来ません。 デバックから実行をすればいいというのは知っているのですが、 そのアイコンやビルドのアイコンが暗いままでクリックすら出来ず、 F5やF7を押してもまったく変化がありません。 何がいけないのか、ご指摘いただければ幸いです。

  • ASP.NETの初心者です。

    今自身で認識してる事が正しいのかわかりません。 以前ASPの開発をしていました、今度ASP.NETの開発をする事になりました、既にあるASP.NETの変更をするのですが、ファイルの形式がどうしてもわかりません、Visual Studioで作成するのはASPだけ? index.aspx を起動するには、index.aspx.cs、 index.aspx.resxが必要、このcsファイル、resxファイルはどのように作成?される、どのような意味を持つファイルなのでしょうか? 又、コンパイルのとプログラミングコードを暗号化する事? ホスティングがASP.NET 1.1 をサポートしています、その際にVisual Studio 2005での開発およびコンパイルは可能なのでしょうか? データベースの接続を変更するのですが、その際は再度コンパイルが必要な為、その際のコンパイル方法が分かりません。 本をオーダーしたのですが、海外に住んでる為届くのに一ヶ月かかると言われ、初歩的な質問ですが、宜しくお願いいたします。

  • Cのコンパイル

    新しい職場に移動し、いままで開発したことのないC言語でプログラムを組むことになりました。PCにvisual basic studio .netが組み込まれているのですが、これでコンパイルする方法がまったくわかりません。どうやってコンパイルすればいいのか、またはコンパイルする方法が書かれた資料などありましたら、教えてください。

  • VS2010のサンプルがコンパイルできません。。。

    Visual Studio2010 Professionalを使っています。 購入してまずはmicrosoftから配布されているサンプルを見ながら勉強しようと思ったのですが以下のようなエラーメッセージが表示されてビルドできません。 [サンプルのURL]http://archive.msdn.microsoft.com/vcsamples/Wiki/View.aspx?title=ja-JP [エラーメッセージ] error C1083: include ファイルを開けません。'backward_warning.h': No such file or directory どのサンプルをビルドしても同じメッセージが出てきます。ひたすらにGoogleで解決方法を検索したのですが、まだ分かりません。 大変申し訳ございませんが、ビルドする方法をどなたかご教授いただけないでしょうか。

  • これからWebアプリを開発しようとしている初心者です。

    これからWebアプリを開発しようとしている初心者です。 Microsoft Visual Studio 2005を使用しています。 ファイル - 新規作成 に新しいWebサイトがありません。 (プロジェクトとファイルは表示されています。) 参考書には上記の新しいWebサイトがあることが記載されていました。 私の環境では表示されなく不思議です。 どなたかご教授お願いします。

  • HTMLとjavascriptでWebアプリ作成

    今回、初めてWebのアプリを作成することになり よく分からないので、今は、テキストエディタで HTMLとjavascriptを記述したファイル(.html)を作成して、 Internet Explorerに読み込ませて、 エラーがでたら、その都度テキストエディタで修正して、 デバッグをしているのですが、 VBEやVisual Studio 2010のように、ブレークやステップ実行 などができるツール(デバッグ環境)はあるのでしょうか。 ExcelのVBAはVBE、VB.NETやC#はVisual Studio 2010を 使っていますが、Webアプリははじめてで、 よく分かりませんのでよろしくお願いします。

  • Visual Studio 2005 でコンパイルしたファイルが実行できない

    タイトルの通りですが、Visual Studio 2005でコンパイルしたファイルを実行してもエラーが出てしまいます。 エラーの通りにVS2005の関連しているものを全て修復インストールしてみましたが、最初の5~10回ぐらいは正常に実行できるのですがしばらくするとまた元に戻ってしまいました。 まだパッケージ版が出ていないためか、google等で検索しても引っかからないので誰か同じエラーが出た人はアドバイスをお願いします。 追伸 VS.NETの2003が共存しています。 しかし、アカデミパックなのでライセンスに制限があるため削除は避けたいです。 (MSVS2005インスト後、両ソフトとも正常に使えてたのでこれが問題だとは考えにくいですけど…) Visual StudioのeditionはProfessionalで、本ソフト入手経路は「GET! Visual Studio 2005(たしか)」のキャンペーンでMSよりDLしました。

  • Web Developerのビルドと配置

    稼働しているシステムのソースを開発環境端末でビルドし直し、 IIS上にファイルコピー後、ブラウザからアクセスすると、 「**_ERROR.html」のエラー画面が表示されます。 ビルド方法や配置方法など、どこの設定が原因なのかわかりません。 経験のある方何かアドバイスをいただけますでしょうか? また、参考サイトや調べ方を教えていただけるだけでも助かります。 <開発環境> 開発環境:Micrsoft Visual Web Developer 2010 Express OS:Windosw7 Proffesional <実行環境> OS:Windows Server 2008 WEBサーバー:IIS7 ※稼働しているシステムのソースを新しい開発環境端末で改修するためにビルドしています。

専門家に質問してみよう