- PR -

プログラムを修正してデバッグしても、修正した結果が反映されません。

投稿者投稿内容
One.net
大ベテラン
会議室デビュー日: 2008/03/01
投稿数: 202
投稿日時: 2008-05-29 16:46
スレッドを立てたOne.netです。次のようにすると再現しました。
1.日時を6月29にちにっ変更する
2.開発中のプロジェクトを立ち上げる。
3.この状態でメインメニュー(スタートページ)を次のように編集
・フォームにボタンを配置するだけ(.Designer.vbの編集)
・ソースに MessageBox.Show("テスト")を追加
4.上記の修正後デバッグする(編集したとおり正常に動作しました)
5.プロジェクトを保存する
6.PCの日時を5月29日に戻す
7.再度同じプロジェクトを立ち上げる。
8.この状態でメインメニュー(スタートページ)を次のように編集
・フォームにTextBoxを配置するだけ(.Designer.vbの編集)
・ソースに MessageBox.Show("時間を戻した。")を追加
9.上記の修正後あデバッグする→6月29日の状態でしか実行しません。
以上ですが、又出かけますので失礼します。


[ メッセージ編集済み 編集者: One.net 編集日時 2008-05-29 16:47 ]

[ メッセージ編集済み 編集者: One.net 編集日時 2008-05-29 18:21 ]
One.net
大ベテラン
会議室デビュー日: 2008/03/01
投稿数: 202
投稿日時: 2008-05-29 20:57
スレッドを立てたOne.Netです。
問題は、bin, obj フォルダを削除しても編集前の旧バージョンが立ち上がってしまうことでしたね
先ほど( 2008-05-29 16:46)再現したプロジェクトのバックアップを取ってbin, obj フォルダを削除した後のテストを次のように行いました。
1.プロジェクトを立ち上げ3度目の編集を次のように行いました
・フォームにボタン2を配置しました。(配置のみ)
・ソースに MessageBox.Show("テスト2")を追加
2.上記の編集後にデバックするとやはり6月29日の編集内容で実行されました。
※内容:「テスト」のメッセージが表示され、[OK]ボタンを押しても「時間を戻した」や「テスト2」のメッセージは表示されずにメインメニューが表示され、フォームにはボタン1のみが配置されています。
(PCの日時は5月29日です)

ちなみにプロジェクトを一旦保存してからデバックする次のようなテストも行ってみました。
1.( 2008-05-29 16:46)再現したプロジェクトのバックアップでbin, obj フォルダを削除しました。
2.そのプロジェクトを立ち上げ4度目の編集を次の用に行いました
・フォームにボタン3を配置しました。(配置のみ)
・ソースに MessageBox.Show("テスト3")を追加
3.一旦このプロジェクトを終了させて保存しました。
4.続けて保存したプロジェクトを再度立ち上げデバックしました。結果は4度目の編集結果で正常に実行されました。
(PCの日時は5月29日です)

以上の通りPCの日時を元に戻してからプロジェクトを立ち上げ、編集をした後
A.そのままデバックすると旧バージョンが立ち上がる
B.一旦保存して再立上げしてからデバックすると最新バージョンが立ち上がる。

以上、取り急ぎ報告まで。



[ メッセージ編集済み 編集者: One.net 編集日時 2008-05-29 21:14 ]
ぱてお
常連さん
会議室デビュー日: 2008/03/07
投稿数: 41
投稿日時: 2008-05-30 17:35
開発環境がソースファイルがビルド対象かどうかを判断する時には
通常、日付を使います。
つまりターゲットファイルよりもソースファイルが新しいとビルド対象になります。
ソースファイルの方が古いといつまでたってもビルド対象になりません。
最初の方でタイムスタンプの問題を挙げていましたが、
この手の自動ビルドを行なうタイプの開発環境では割とメジャーな話です。

昔の環境で言うならmakeファイルを使ったビルドの自動化をしていると同じような
現象が起こる事が良く知られています。
なので、開発機の日付をいじるような時はよくよく気をつけていないと
ハマリ込む事になります。
また、ファイルサーバーとクライアントの微妙な時間のズレが原因で同じような
問題が起こることも有りますので注意が必要です。
One.net
大ベテラン
会議室デビュー日: 2008/03/01
投稿数: 202
投稿日時: 2008-05-30 21:07
ぱておさん、ありがとうございます。
引用:

ぱておさんの書き込み (2008-05-30 17:35) より:
開発環境がソースファイルがビルド対象かどうかを判断する時には通常、日付を使います。つまりターゲットファイルよりもソースファイルが新しいとビルド対象になります。ソースファイルの方が古いといつまでたってもビルド対象になりません。


ソースファイルをビルドする時 → ソースファイル更新日時 > ターゲットファイル更新日時との事ですが、ソースファイルとは*.Designer.vb や*.vb で、ターゲットファイルとはbin\Debug\*.exe と解釈してよいのでしょうか。
引用:

開発機の日付をいじるような時はよくよく気をつけていないと ハマリ込む事になり、また、ファイルサーバーとクライアントの微妙な時間のズレが原因で同じような問題が起こることも有りますので注意が必要です。


よくわかりました。だとすると開発機の内部クロックを進めてソースファイルを更新してしまった場合にはターゲットファイル更新日時を現在より前に遅らせて設定すればトラブルは回避できるのでしょうか。
よろしくご指導下さい。

[ メッセージ編集済み 編集者: One.net 編集日時 2008-05-30 21:14 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-05-30 22:56
前にも VisualBasic Express Edition で、ツールの操作関係でゴタゴタがあったので、インストールしてみました。

  • ソリューション…作成できません。1プロジェクト=1リューション。よって、構成によって特定のプロジェクトをビルドしないというオプションもない。
    →オプションの、「プロジェクトおよびソリューション → 全般」で、「常にソリューションを表示」をチェックすると、見えるようになる。しかし、作成ウィザードで作れるわけではない。ソリューション エクスプローラからプロジェクトを追加することが可能。

  • リビルド…できません。メインメニューにはない。
    →ソリューション エクスプローラで、プロジェクトを右クリックするとある。

  • クリーン…できません。メインメニューには、「ビルド」と「発行」しかない。ソリューション エクスプローラで右クリックしても出てこない。
    →「常にソリューションを表示」をチェックすると、ソリューションのクリーンとリビルドが出てきた。ソリューションのクリーンはあるが、プロジェクトのクリーンはないみたい。

  • 構成の切り替え…できません。
    →オプションの、「プロジェクトおよびソリューション → 全般」で、「ビルド構成の詳細を表示」をチェックするとできるようになる。メインメニューの「ビルド」にも、「構成マネージャ」が出てくるようになる。

  • このスレッドの4ページ目で尋ねた、「ビルド/実行」のオプション
    →「すべての設定を表示」をチェックすると出てきた。

  • メソッドの呼び出し履歴が出ない。



ちょっと、マイクロソフト。サポートすること(サポート部隊のこと)考えてネーだろ?
One.net
大ベテラン
会議室デビュー日: 2008/03/01
投稿数: 202
投稿日時: 2008-05-30 23:19
Jittaさん、 VisualBasic Express Edition 使用者のために上位 Editionとの比較をインストールしてまで解説いただきありがとうございます。実際に@IT会議室での質問者は Express Edition の使用者も多いと思いますが、回答される先輩とのコミニケーションが的外れになり、本当に困ります。といって回答者の方にExpress Edition も勉強して欲しいとは口が裂けてもいえませんし、いつもわびしい思いをしていました。
夜遅くありがとうございました。

[ メッセージ編集済み 編集者: One.net 編集日時 2008-05-30 23:38 ]
nakaP
大ベテラン
会議室デビュー日: 2005/09/27
投稿数: 138
お住まい・勤務地: 高知
投稿日時: 2008-05-31 01:24
引用:

Jittaさんの書き込み (2008-05-30 22:56) より:

  • ソリューション…作成できません。1プロジェクト=1リューション。よって、構成によって特定のプロジェクトをビルドしないというオプションもない。
    →オプションの、「プロジェクトおよびソリューション → 全般」で、「常にソリューションを表示」をチェックすると、見えるようになる。しかし、作成ウィザードで作れるわけではない。ソリューション エクスプローラからプロジェクトを追加することが可能。



プロジェクトを保存することにより、新しいプロジェクトを追加することができます。
これにより、1ソリューションで複数のプロジェクトを保持することができます。

引用:


  • リビルド…できません。メインメニューにはない。
    →ソリューション エクスプローラで、プロジェクトを右クリックするとある。

  • クリーン…できません。メインメニューには、「ビルド」と「発行」しかない。ソリューション エクスプローラで右クリックしても出てこない。
    →「常にソリューションを表示」をチェックすると、ソリューションのクリーンとリビルドが出てきた。ソリューションのクリーンはあるが、プロジェクトのクリーンはないみたい。



複数プロジェクトにすることにより、メインメニューに登場します。

でも、分かりにくいですね。
よこけん
大ベテラン
会議室デビュー日: 2006/01/31
投稿数: 216
投稿日時: 2008-06-01 00:06
Express Edition と他の Edition の違いを甘く見てました。
One.net さんが最初から明記してある以上、このことは完全に僕に非があります。
大変申し訳なかったです。
_________________
C#と諸々

スキルアップ/キャリアアップ(JOB@IT)