
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#の開発に
詳しい人がいないため、本当に困っています。
どなたか上記の疑問点にお答えいただければ幸いです。
よろしくお願いします。
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アプリケーションというプロジェクトの違いについて考慮して調査されるとよいかと
思います。
この回答への補足
早速の回答、感謝致します、
はい、各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を生成できるよう、もう少し頑張ってみます。
ご親切にいろいろアドバイスいただき、本当にありがとうございました。
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が生成されずに動作することはありえませんし。
生成されない、といいきっちゃうと微妙な表現となるので注意が必要だと思います。
まぁ、このあたりはあまり意識しなくてよいところではありますが。
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% …
ということで、まずはWebアプリケーションとしてきちんと開ける環境を用意することが重要かと。
VWD2010が入っているマシンが使えるならそこでいけそうな気がしますが。
だんだん問題点がはっきりしてきました。
まずは開発環境を整え、Webアプリケーションとしてプロジェクトファイルを開いて変更を
加えないと、すべてが正しく連携してくれないということですね。
使用しているのはVWD2008 Express EditionのVer.3.5 SP1です。
教えていただいたリンクの説明で、WebアプリケーションとWebサイトの違いがより深く
理解できました。ありがとうございます。
VWD2010はローカルのPCにしか入っていなくて、そちらにはデータDBとかがないので、
コンパイルやデバッグはテストサーバーでする必要がありますよね。
また、ローカルに全ファイルをコピーして、VWD2010で.csprojファイルを開こうとした
ところ、プロジェクトを新しいバージョンに変換するダイアログが出てきました。
一度変換してしまうと、もうVWD2008では開けなくなるのでしょうか?
アプリの変更の追加要件自体はそんなに複雑なものではないので、簡単に修正できるかと
思いましたが、まさか開発環境でここまで苦労するとは・・・(泣)
いろいろご教授いただき、本当に感謝しております。
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)上のコードは全てランタイムコンパイルされます。
ソリューションエクスプローラ上で、ファイルのアイコンが正しく見えていますか? 白紙アイコンになってない?
このあたりの基本設定が狂っていると、結果が滅茶苦茶になります。
この回答への補足
ASP.NETの知識レベルが私とあまり変わらない同僚がVSでフォルダを指定してプロジェクトを
開いていたので、てっきりWebサイトプロジェクトだと思ったのですが、実は
Webアプリケーションプロジェクトだったようです。
テストサーバーではVS2005でもVWD2008でも「Webアプリケーション」としてプロジェクト
ファイルを開けないのですが、VWD2008で「Webサイトプロジェクト」として開いたり、
ローカルマシンのVWD2010で開いてみた限りでは、すべてちゃんとアイコンが見えています。
ちなみにVWD2010では、プロジェクトを新しいバージョンに変換してからでないと、
「Webサイトプロジェクト」として開けませんでした。
また、バージョン変換中に多くのファイルが変換不可のエラーになりました。
主要な.aspxや.aspx.csファイルは、エラーになりませんでしたが。
理由はよくわかりませんが、なんかいろんな基本設定が狂っているようです・・・
アドバイス、ありがとうございました。
No.2
- 回答日時:
csprojのダブルクリックでVS2005があがってくる、ということはもともとVS2005で作成されたプロジェクトなんでしょうね。
ソリューションエクスプローラーに何も表示されないというのは、、、フォルダの位置とか関係してたかな?
csprojファイルをテキストエディタで開いて調整して、、、とか詳しければできることもあるかもしれませんが。。。
VWD2008からだとメニューの「ファイル」-「開く」-「プロジェクト/ソリューション」からcsprojを指定して開けませんかね?
Webサイトプロジェクトではないので、フォルダの指定ではダメなはずです。
> それと、.aspx.designer.csファイルは、コンパイルに成功したタイミングで更新されるの
でしょうか?
これはデザイナー画面でコントロールを触った時点で更新されるはず。
たぶん正しくWebアプリケーションとして開けてないから、かなぁ。
この回答への補足
再びコメントいただき、ありがとうございます。
もしかしたら、csprojファイルの設定内容と実際のフォルダ構成やファイルセットが
異なるため、ちゃんとプロジェクトが開けないのかもしれませんね。
Webアプリケーションとしてプロジェクトファイルを開かず、ファイル単位で開いて
編集したりすると、こういうことが起こるのでしょうか。
新しいプロジェクトを作成し、既存のすべてのファイルを追加して、プロジェクト
ファイルを正しく作り直せないか、試してみます。
インストールされているVWD2008では、ファイルメニューに「Webサイトを開く」と
「ファイルを開く」しかなく、ただの「開く」というオプションがないんです。
別のマシンのVWD2010には「プロジェクトを開く」もあるのに、おかしいですよね・・・。
とりあえずすべてのファイルを編集前の状態にロールバックしました。
Webアプリケーションについて、もう少しいろいろ調べて勉強します。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 1つのファイルを3つのフォルダにファイル名を【明日の日付】にして、コピーをしたい 2 2022/12/21 17:43
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- Windows 10 Windows Updateが動作しません 7 2022/08/12 16:26
- 労働相談 合意済み仕様の商品納入後における仕様変更要求への対応について 5 2023/04/19 09:41
- その他(ソフトウェア) 特定のpremiere proのファイルが開けなくなりました。 1 2022/11/16 12:31
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- Microsoft ASP C#からvbsを実行したい 5 2022/11/24 17:31
- C言語・C++・C# C#の2つの実行ファイルとアプリアイコンの変更について 1 2023/01/07 16:57
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルに張り付けた写真のフ...
-
スイッチが二台あり、別々のア...
-
vba 空のデータをSplitする時の...
-
Windowsで複数のファイルを同じ...
-
高校1年生情報の問題について。
-
VBAでPDFを作成する際、同じ名...
-
VBAでPDF作成をしたあと、指定...
-
C#からvbsを実行したい
-
【VB.NET】Excelの最終行までの...
-
LINE APIからasp.net の web サ...
-
VB.NET Excelを読み込んでDataT...
-
入力フォームのテキストボック...
-
Windows10にデュアルブートでXP...
-
連想配列を配列に格納したいで...
-
onedrive にexcelファイルをア...
-
お世話になります。 Windows Up...
-
【VB.NET】for each文からのINS...
-
”KINGSOFT WPSのVBエディタ画面...
-
マクロで同じフォルダにある画...
-
asp.netにてgridviewの列を動的...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Webサイト アプリのコンパイル他
-
[VB.NET]クラスのシリアライズ...
-
Visual Studio 2008について
-
App_Code配下のクラスをNUnitで...
-
ASP.NET 3.5 アプリのフォルダ構成
-
Visual Web Developer 2005 の...
-
Excelでdatファイルを作成??
-
複数のテキストファイルをexcel...
-
ダウンロード不可PDFファイルは...
-
バッチによるショートカットの...
-
【Excel VBA】PDFを作成して,...
-
Microsoft Access エラー 3051
-
バッチファイルが作成できない
-
VBAでファイルパスが長すぎてコ...
-
テキストファイルの文字色に色...
-
カスタムコントロールのOCAファ...
-
FFFTPでサーバに新規フォルダが...
-
フォルダ作成用バッチファイル...
-
FileExitsについて
-
Access2003で「オブジェクト'○○...
おすすめ情報